Bug 1245649: Turn on linebreak-style. r=Gijs
authorDave Townsend <dtownsend@oxymoronical.com>
Wed, 03 Feb 2016 17:04:56 -0800
changeset 329077 06982056b5a5cb566eb836d53283b545a927de29
parent 329076 6c56f5dad3b24506c41d5a38115d19456fe2a802
child 329078 cb217f7271c24838782ff4f772af29a7ba9f53e8
push id10463
push userdtownsend@mozilla.com
push dateFri, 05 Feb 2016 03:02:33 +0000
reviewersGijs
bugs1245649
milestone47.0a1
Bug 1245649: Turn on linebreak-style. r=Gijs
browser/components/customizableui/test/browser_1007336_lwthemes_in_customize_mode.js
browser/components/customizableui/test/browser_1161838_inserted_new_default_buttons.js
browser/experiments/test/addons/experiment-racybranch/bootstrap.js
browser/experiments/test/xpcshell/test_cacherace.js
browser/experiments/test/xpcshell/test_nethang_bug1012924.js
browser/experiments/test/xpcshell/test_upgrade.js
browser/modules/FormSubmitObserver.jsm
browser/modules/LaterRun.jsm
browser/modules/test/xpcshell/test_LaterRun.js
toolkit/.eslintrc
toolkit/components/filewatcher/tests/xpcshell/test_remove_non_watched.js
toolkit/components/filewatcher/tests/xpcshell/test_shared_callback.js
toolkit/components/filewatcher/tests/xpcshell/test_watch_directory_creation_single.js
toolkit/components/filewatcher/tests/xpcshell/test_watch_directory_deletion_single.js
toolkit/components/filewatcher/tests/xpcshell/test_watch_file_creation_single.js
toolkit/components/filewatcher/tests/xpcshell/test_watch_file_deletion_single.js
toolkit/components/filewatcher/tests/xpcshell/test_watch_file_modification_single.js
toolkit/components/filewatcher/tests/xpcshell/test_watch_many_changes.js
toolkit/components/filewatcher/tests/xpcshell/test_watch_multi_paths.js
toolkit/components/filewatcher/tests/xpcshell/test_watch_recursively.js
toolkit/components/filewatcher/tests/xpcshell/test_watch_resource.js
toolkit/components/microformats/test/interface-tests/index.html
toolkit/components/microformats/test/module-tests/index.html
toolkit/components/microformats/test/standards-tests/index.html
toolkit/components/microformats/test/standards-tests/mf-mixed-h-card-mixedpropertries.js
toolkit/components/microformats/test/standards-tests/mf-mixed-h-card-tworoots.js
toolkit/components/microformats/test/standards-tests/mf-mixed-h-entry-mixedroots.js
toolkit/components/microformats/test/standards-tests/mf-mixed-h-resume-mixedroots.js
toolkit/components/microformats/test/standards-tests/mf-v1-adr-simpleproperties.js
toolkit/components/microformats/test/standards-tests/mf-v1-geo-abbrpattern.js
toolkit/components/microformats/test/standards-tests/mf-v1-geo-hidden.js
toolkit/components/microformats/test/standards-tests/mf-v1-geo-simpleproperties.js
toolkit/components/microformats/test/standards-tests/mf-v1-geo-valuetitleclass.js
toolkit/components/microformats/test/standards-tests/mf-v1-hcalendar-ampm.js
toolkit/components/microformats/test/standards-tests/mf-v1-hcalendar-attendees.js
toolkit/components/microformats/test/standards-tests/mf-v1-hcalendar-combining.js
toolkit/components/microformats/test/standards-tests/mf-v1-hcalendar-concatenate.js
toolkit/components/microformats/test/standards-tests/mf-v1-hcalendar-time.js
toolkit/components/microformats/test/standards-tests/mf-v1-hcard-email.js
toolkit/components/microformats/test/standards-tests/mf-v1-hcard-format.js
toolkit/components/microformats/test/standards-tests/mf-v1-hcard-hyperlinkedphoto.js
toolkit/components/microformats/test/standards-tests/mf-v1-hcard-justahyperlink.js
toolkit/components/microformats/test/standards-tests/mf-v1-hcard-justaname.js
toolkit/components/microformats/test/standards-tests/mf-v1-hcard-multiple.js
toolkit/components/microformats/test/standards-tests/mf-v1-hcard-name.js
toolkit/components/microformats/test/standards-tests/mf-v1-hcard-single.js
toolkit/components/microformats/test/standards-tests/mf-v1-hentry-summarycontent.js
toolkit/components/microformats/test/standards-tests/mf-v1-hfeed-simple.js
toolkit/components/microformats/test/standards-tests/mf-v1-hnews-all.js
toolkit/components/microformats/test/standards-tests/mf-v1-hnews-minimum.js
toolkit/components/microformats/test/standards-tests/mf-v1-hproduct-aggregate.js
toolkit/components/microformats/test/standards-tests/mf-v1-hproduct-simpleproperties.js
toolkit/components/microformats/test/standards-tests/mf-v1-hresume-affiliation.js
toolkit/components/microformats/test/standards-tests/mf-v1-hresume-contact.js
toolkit/components/microformats/test/standards-tests/mf-v1-hresume-education.js
toolkit/components/microformats/test/standards-tests/mf-v1-hresume-skill.js
toolkit/components/microformats/test/standards-tests/mf-v1-hresume-work.js
toolkit/components/microformats/test/standards-tests/mf-v1-hreview-aggregate-hcard.js
toolkit/components/microformats/test/standards-tests/mf-v1-hreview-aggregate-justahyperlink.js
toolkit/components/microformats/test/standards-tests/mf-v1-hreview-aggregate-vevent.js
toolkit/components/microformats/test/standards-tests/mf-v1-hreview-item.js
toolkit/components/microformats/test/standards-tests/mf-v1-hreview-vcard.js
toolkit/components/microformats/test/standards-tests/mf-v1-includes-hcarditemref.js
toolkit/components/microformats/test/standards-tests/mf-v1-includes-heventitemref.js
toolkit/components/microformats/test/standards-tests/mf-v1-includes-hyperlink.js
toolkit/components/microformats/test/standards-tests/mf-v1-includes-object.js
toolkit/components/microformats/test/standards-tests/mf-v1-includes-table.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-adr-geo.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-adr-geourl.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-adr-justaname.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-adr-simpleproperties.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-as-note-note.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-card-baseurl.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-card-childimplied.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-card-extendeddescription.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-card-hcard.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-card-horghcard.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-card-hyperlinkedphoto.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-card-impliedname.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-card-impliedphoto.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-card-impliedurl.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-card-justahyperlink.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-card-justaname.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-card-nested.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-card-p-property.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-card-relativeurls.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-entry-impliedvalue-nested.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-entry-justahyperlink.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-entry-justaname.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-entry-summarycontent.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-entry-u-property.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-entry-urlincontent.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-event-ampm.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-event-attendees.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-event-combining.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-event-concatenate.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-event-dates.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-event-dt-property.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-event-justahyperlink.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-event-justaname.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-event-time.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-feed-implied-title.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-feed-simple.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-geo-abbrpattern.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-geo-altitude.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-geo-hidden.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-geo-justaname.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-geo-simpleproperties.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-geo-valuetitleclass.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-news-all.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-news-minimum.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-org-hyperlink.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-org-simple.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-org-simpleproperties.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-product-aggregate.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-product-justahyperlink.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-product-justaname.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-product-simpleproperties.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-recipe-all.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-recipe-minimum.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-resume-affiliation.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-resume-contact.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-resume-education.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-resume-justaname.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-resume-skill.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-resume-work.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-review-aggregate-hevent.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-review-aggregate-justahyperlink.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-review-aggregate-simpleproperties.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-review-hyperlink.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-review-implieditem.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-review-item.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-review-justaname.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-review-photo.js
toolkit/components/microformats/test/standards-tests/mf-v2-h-review-vcard.js
toolkit/components/microformats/test/standards-tests/mf-v2-rel-duplicate-rels.js
toolkit/components/microformats/test/standards-tests/mf-v2-rel-license.js
toolkit/components/microformats/test/standards-tests/mf-v2-rel-nofollow.js
toolkit/components/microformats/test/standards-tests/mf-v2-rel-rel-urls.js
toolkit/components/microformats/test/standards-tests/mf-v2-rel-varying-text-duplicate-rels.js
toolkit/components/microformats/test/standards-tests/mf-v2-rel-xfn-all.js
toolkit/components/microformats/test/standards-tests/mf-v2-rel-xfn-elsewhere.js
toolkit/components/thumbnails/test/thumbnails_crash_content_helper.js
toolkit/content/tests/browser/browser_bug982298.js
toolkit/content/tests/widgets/head.js
toolkit/crashreporter/test/browser/browser_bug471404.js
toolkit/modules/PermissionsUtils.jsm
toolkit/modules/tests/xpcshell/test_Http.js
toolkit/modules/tests/xpcshell/test_PermissionsUtils.js
toolkit/mozapps/extensions/test/xpcshell/test_ChromeManifestParser.js
toolkit/mozapps/extensions/test/xpcshell/test_blocklist_regexp.js
toolkit/mozapps/extensions/test/xpcshell/test_bug1180901.js
toolkit/mozapps/extensions/test/xpcshell/test_bug1180901_2.js
toolkit/mozapps/extensions/test/xpcshell/test_bug757663.js
toolkit/mozapps/extensions/test/xpcshell/test_checkCompatibility_themeOverride.js
toolkit/mozapps/extensions/test/xpcshell/test_migrate5.js
toolkit/mozapps/extensions/test/xpcshell/test_permissions.js
toolkit/mozapps/extensions/test/xpcshell/test_permissions_prefs.js
toolkit/mozapps/extensions/test/xpcshell/test_pluginchange.js
toolkit/mozapps/extensions/test/xpcshell/test_strictcompatibility.js
--- a/browser/components/customizableui/test/browser_1007336_lwthemes_in_customize_mode.js
+++ b/browser/components/customizableui/test/browser_1007336_lwthemes_in_customize_mode.js
@@ -1,62 +1,62 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
-  * License, v. 2.0. If a copy of the MPL was not distributed with this
-  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-const DEFAULT_THEME_ID = "{972ce4c6-7e08-4474-a285-3208198ce6fd}";
-const {LightweightThemeManager} = Components.utils.import("resource://gre/modules/LightweightThemeManager.jsm", {});
-
-add_task(function* () {
-  Services.prefs.clearUserPref("lightweightThemes.usedThemes");
-  Services.prefs.clearUserPref("lightweightThemes.recommendedThemes");
-  LightweightThemeManager.clearBuiltInThemes();
-
-  yield startCustomizing();
-
-  let themesButton = document.getElementById("customization-lwtheme-button");
-  let popup = document.getElementById("customization-lwtheme-menu");
-
-  let popupShownPromise = popupShown(popup);
-  EventUtils.synthesizeMouseAtCenter(themesButton, {});
-  info("Clicked on themes button");
-  yield popupShownPromise;
-
-  let header = document.getElementById("customization-lwtheme-menu-header");
-  let recommendedHeader = document.getElementById("customization-lwtheme-menu-recommended");
-
-  is(header.nextSibling.nextSibling, recommendedHeader,
-     "There should only be one theme (default) in the 'My Themes' section by default");
-  is(header.nextSibling.theme.id, DEFAULT_THEME_ID, "That theme should be the default theme");
-
-  let firstLWTheme = recommendedHeader.nextSibling;
-  let firstLWThemeId = firstLWTheme.theme.id;
-  let themeChangedPromise = promiseObserverNotified("lightweight-theme-changed");
-  firstLWTheme.doCommand();
-  info("Clicked on first theme");
-  yield themeChangedPromise;
-
-  popupShownPromise = popupShown(popup);
-  EventUtils.synthesizeMouseAtCenter(themesButton, {});
-  info("Clicked on themes button");
-  yield popupShownPromise;
-
-  is(header.nextSibling.theme.id, DEFAULT_THEME_ID, "The first theme should be the Default theme");
-  let installedThemeId = header.nextSibling.nextSibling.theme.id;
-  ok(installedThemeId.startsWith(firstLWThemeId),
-     "The second theme in the 'My Themes' section should be the newly installed theme: " +
-     "Installed theme id: " + installedThemeId + "; First theme ID: " + firstLWThemeId);
-  is(header.nextSibling.nextSibling.nextSibling, recommendedHeader,
-     "There should be two themes in the 'My Themes' section");
-
-  let defaultTheme = header.nextSibling;
-  defaultTheme.doCommand();
-  is(Services.prefs.getCharPref("lightweightThemes.selectedThemeID"), "", "No lwtheme should be selected");
-});
-
-add_task(function* asyncCleanup() {
-  yield endCustomizing();
-
-  Services.prefs.clearUserPref("lightweightThemes.usedThemes");
-  Services.prefs.clearUserPref("lightweightThemes.recommendedThemes");
-});
+/* This Source Code Form is subject to the terms of the Mozilla Public
+  * License, v. 2.0. If a copy of the MPL was not distributed with this
+  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+const DEFAULT_THEME_ID = "{972ce4c6-7e08-4474-a285-3208198ce6fd}";
+const {LightweightThemeManager} = Components.utils.import("resource://gre/modules/LightweightThemeManager.jsm", {});
+
+add_task(function* () {
+  Services.prefs.clearUserPref("lightweightThemes.usedThemes");
+  Services.prefs.clearUserPref("lightweightThemes.recommendedThemes");
+  LightweightThemeManager.clearBuiltInThemes();
+
+  yield startCustomizing();
+
+  let themesButton = document.getElementById("customization-lwtheme-button");
+  let popup = document.getElementById("customization-lwtheme-menu");
+
+  let popupShownPromise = popupShown(popup);
+  EventUtils.synthesizeMouseAtCenter(themesButton, {});
+  info("Clicked on themes button");
+  yield popupShownPromise;
+
+  let header = document.getElementById("customization-lwtheme-menu-header");
+  let recommendedHeader = document.getElementById("customization-lwtheme-menu-recommended");
+
+  is(header.nextSibling.nextSibling, recommendedHeader,
+     "There should only be one theme (default) in the 'My Themes' section by default");
+  is(header.nextSibling.theme.id, DEFAULT_THEME_ID, "That theme should be the default theme");
+
+  let firstLWTheme = recommendedHeader.nextSibling;
+  let firstLWThemeId = firstLWTheme.theme.id;
+  let themeChangedPromise = promiseObserverNotified("lightweight-theme-changed");
+  firstLWTheme.doCommand();
+  info("Clicked on first theme");
+  yield themeChangedPromise;
+
+  popupShownPromise = popupShown(popup);
+  EventUtils.synthesizeMouseAtCenter(themesButton, {});
+  info("Clicked on themes button");
+  yield popupShownPromise;
+
+  is(header.nextSibling.theme.id, DEFAULT_THEME_ID, "The first theme should be the Default theme");
+  let installedThemeId = header.nextSibling.nextSibling.theme.id;
+  ok(installedThemeId.startsWith(firstLWThemeId),
+     "The second theme in the 'My Themes' section should be the newly installed theme: " +
+     "Installed theme id: " + installedThemeId + "; First theme ID: " + firstLWThemeId);
+  is(header.nextSibling.nextSibling.nextSibling, recommendedHeader,
+     "There should be two themes in the 'My Themes' section");
+
+  let defaultTheme = header.nextSibling;
+  defaultTheme.doCommand();
+  is(Services.prefs.getCharPref("lightweightThemes.selectedThemeID"), "", "No lwtheme should be selected");
+});
+
+add_task(function* asyncCleanup() {
+  yield endCustomizing();
+
+  Services.prefs.clearUserPref("lightweightThemes.usedThemes");
+  Services.prefs.clearUserPref("lightweightThemes.recommendedThemes");
+});
--- a/browser/components/customizableui/test/browser_1161838_inserted_new_default_buttons.js
+++ b/browser/components/customizableui/test/browser_1161838_inserted_new_default_buttons.js
@@ -1,82 +1,82 @@
-"use strict";
-
-// NB: This uses some ugly hacks to get into the CUI module from elsewhere...
-// don't try this at home, kids.
-function test() {
-  // Customize something to make sure stuff changed:
-  CustomizableUI.addWidgetToArea("feed-button", CustomizableUI.AREA_NAVBAR);
-
-  let CustomizableUIBSPass = Cu.import("resource:///modules/CustomizableUI.jsm", {});
-
-  is(CustomizableUIBSPass.gFuturePlacements.size, 0,
-     "All future placements should be dealt with by now.");
-
-  let {CustomizableUIInternal, gFuturePlacements, gPalette} = CustomizableUIBSPass;
-
-  // Force us to have a saved state:
-  CustomizableUIInternal.saveState();
-  CustomizableUIInternal.loadSavedState();
-
-  CustomizableUIInternal._introduceNewBuiltinWidgets();
-  is(gFuturePlacements.size, 0,
-     "No change to future placements initially.");
-
-  let currentVersion = CustomizableUIBSPass.kVersion;
-
-
-  // Add our widget to the defaults:
-  let testWidgetNew = {
-    id: "test-messing-with-default-placements-new-pref",
-    label: "Test messing with default placements - pref-based",
-    defaultArea: CustomizableUI.AREA_NAVBAR,
-    introducedInVersion: "pref",
-  };
-
-  let normalizedWidget = CustomizableUIInternal.normalizeWidget(testWidgetNew,
-                                                                CustomizableUI.SOURCE_BUILTIN);
-  ok(normalizedWidget, "Widget should be normalizable");
-  if (!normalizedWidget) {
-    return;
-  }
-  CustomizableUIBSPass.gPalette.set(testWidgetNew.id, normalizedWidget);
-
-  // Now adjust default placements for area:
-  let navbarArea = CustomizableUIBSPass.gAreas.get(CustomizableUI.AREA_NAVBAR);
-  let navbarPlacements = navbarArea.get("defaultPlacements");
-  navbarPlacements.splice(navbarPlacements.indexOf("bookmarks-menu-button") + 1, 0, testWidgetNew.id);
-
-  let savedPlacements = CustomizableUIBSPass.gSavedState.placements[CustomizableUI.AREA_NAVBAR];
-  // Then call the re-init routine so we re-add the builtin widgets
-  CustomizableUIInternal._introduceNewBuiltinWidgets();
-  is(gFuturePlacements.size, 1,
-     "Should have 1 more future placement");
-  let futureNavbarPlacements = gFuturePlacements.get(CustomizableUI.AREA_NAVBAR);
-  ok(futureNavbarPlacements, "Should have placements for nav-bar");
-  if (futureNavbarPlacements) {
-    ok(futureNavbarPlacements.has(testWidgetNew.id), "widget should be in future placements");
-  }
-  CustomizableUIInternal._placeNewDefaultWidgetsInArea(CustomizableUI.AREA_NAVBAR);
-
-  let indexInSavedPlacements = savedPlacements.indexOf(testWidgetNew.id);
-  info("Saved placements: " + savedPlacements.join(', '));
-  isnot(indexInSavedPlacements, -1, "Widget should have been inserted");
-  is(indexInSavedPlacements, savedPlacements.indexOf("bookmarks-menu-button") + 1,
-     "Widget should be in the right place.");
-
-  if (futureNavbarPlacements) {
-    ok(!futureNavbarPlacements.has(testWidgetNew.id), "widget should be out of future placements");
-  }
-
-  if (indexInSavedPlacements != -1) {
-    savedPlacements.splice(indexInSavedPlacements, 1);
-  }
-
-  gFuturePlacements.delete(CustomizableUI.AREA_NAVBAR);
-  let indexInDefaultPlacements = navbarPlacements.indexOf(testWidgetNew.id);
-  if (indexInDefaultPlacements != -1) {
-    navbarPlacements.splice(indexInDefaultPlacements, 1);
-  }
-  gPalette.delete(testWidgetNew.id);
-  CustomizableUI.reset();
-}
-
+"use strict";
+
+// NB: This uses some ugly hacks to get into the CUI module from elsewhere...
+// don't try this at home, kids.
+function test() {
+  // Customize something to make sure stuff changed:
+  CustomizableUI.addWidgetToArea("feed-button", CustomizableUI.AREA_NAVBAR);
+
+  let CustomizableUIBSPass = Cu.import("resource:///modules/CustomizableUI.jsm", {});
+
+  is(CustomizableUIBSPass.gFuturePlacements.size, 0,
+     "All future placements should be dealt with by now.");
+
+  let {CustomizableUIInternal, gFuturePlacements, gPalette} = CustomizableUIBSPass;
+
+  // Force us to have a saved state:
+  CustomizableUIInternal.saveState();
+  CustomizableUIInternal.loadSavedState();
+
+  CustomizableUIInternal._introduceNewBuiltinWidgets();
+  is(gFuturePlacements.size, 0,
+     "No change to future placements initially.");
+
+  let currentVersion = CustomizableUIBSPass.kVersion;
+
+
+  // Add our widget to the defaults:
+  let testWidgetNew = {
+    id: "test-messing-with-default-placements-new-pref",
+    label: "Test messing with default placements - pref-based",
+    defaultArea: CustomizableUI.AREA_NAVBAR,
+    introducedInVersion: "pref",
+  };
+
+  let normalizedWidget = CustomizableUIInternal.normalizeWidget(testWidgetNew,
+                                                                CustomizableUI.SOURCE_BUILTIN);
+  ok(normalizedWidget, "Widget should be normalizable");
+  if (!normalizedWidget) {
+    return;
+  }
+  CustomizableUIBSPass.gPalette.set(testWidgetNew.id, normalizedWidget);
+
+  // Now adjust default placements for area:
+  let navbarArea = CustomizableUIBSPass.gAreas.get(CustomizableUI.AREA_NAVBAR);
+  let navbarPlacements = navbarArea.get("defaultPlacements");
+  navbarPlacements.splice(navbarPlacements.indexOf("bookmarks-menu-button") + 1, 0, testWidgetNew.id);
+
+  let savedPlacements = CustomizableUIBSPass.gSavedState.placements[CustomizableUI.AREA_NAVBAR];
+  // Then call the re-init routine so we re-add the builtin widgets
+  CustomizableUIInternal._introduceNewBuiltinWidgets();
+  is(gFuturePlacements.size, 1,
+     "Should have 1 more future placement");
+  let futureNavbarPlacements = gFuturePlacements.get(CustomizableUI.AREA_NAVBAR);
+  ok(futureNavbarPlacements, "Should have placements for nav-bar");
+  if (futureNavbarPlacements) {
+    ok(futureNavbarPlacements.has(testWidgetNew.id), "widget should be in future placements");
+  }
+  CustomizableUIInternal._placeNewDefaultWidgetsInArea(CustomizableUI.AREA_NAVBAR);
+
+  let indexInSavedPlacements = savedPlacements.indexOf(testWidgetNew.id);
+  info("Saved placements: " + savedPlacements.join(', '));
+  isnot(indexInSavedPlacements, -1, "Widget should have been inserted");
+  is(indexInSavedPlacements, savedPlacements.indexOf("bookmarks-menu-button") + 1,
+     "Widget should be in the right place.");
+
+  if (futureNavbarPlacements) {
+    ok(!futureNavbarPlacements.has(testWidgetNew.id), "widget should be out of future placements");
+  }
+
+  if (indexInSavedPlacements != -1) {
+    savedPlacements.splice(indexInSavedPlacements, 1);
+  }
+
+  gFuturePlacements.delete(CustomizableUI.AREA_NAVBAR);
+  let indexInDefaultPlacements = navbarPlacements.indexOf(testWidgetNew.id);
+  if (indexInDefaultPlacements != -1) {
+    navbarPlacements.splice(indexInDefaultPlacements, 1);
+  }
+  gPalette.delete(testWidgetNew.id);
+  CustomizableUI.reset();
+}
+
--- a/browser/experiments/test/addons/experiment-racybranch/bootstrap.js
+++ b/browser/experiments/test/addons/experiment-racybranch/bootstrap.js
@@ -1,33 +1,33 @@
-var {classes: Cc, interfaces: Ci, utils: Cu} = Components;
-
-Cu.import("resource:///modules/experiments/Experiments.jsm");
-
-var gStarted = false;
-
-function startup(data, reasonCode) {
-  if (gStarted) {
-    return;
-  }
-  gStarted = true;
-
-  // delay realstartup to trigger the race condition
-  Cc['@mozilla.org/thread-manager;1'].getService(Ci.nsIThreadManager)
-    .mainThread.dispatch(realstartup, 0);
-}
-
-function realstartup() {
-  let experiments = Experiments.instance();
-  let experiment = experiments._getActiveExperiment();
-  if (experiment.branch) {
-    Cu.reportError("Found pre-existing branch: " + experiment.branch);
-    return;
-  }
-
-  let branch = "racy-set";
-  experiments.setExperimentBranch(experiment.id, branch)
-    .then(null, Cu.reportError);
-}
-
-function shutdown() { }
-function install() { }
-function uninstall() { }
+var {classes: Cc, interfaces: Ci, utils: Cu} = Components;
+
+Cu.import("resource:///modules/experiments/Experiments.jsm");
+
+var gStarted = false;
+
+function startup(data, reasonCode) {
+  if (gStarted) {
+    return;
+  }
+  gStarted = true;
+
+  // delay realstartup to trigger the race condition
+  Cc['@mozilla.org/thread-manager;1'].getService(Ci.nsIThreadManager)
+    .mainThread.dispatch(realstartup, 0);
+}
+
+function realstartup() {
+  let experiments = Experiments.instance();
+  let experiment = experiments._getActiveExperiment();
+  if (experiment.branch) {
+    Cu.reportError("Found pre-existing branch: " + experiment.branch);
+    return;
+  }
+
+  let branch = "racy-set";
+  experiments.setExperimentBranch(experiment.id, branch)
+    .then(null, Cu.reportError);
+}
+
+function shutdown() { }
+function install() { }
+function uninstall() { }
--- a/browser/experiments/test/xpcshell/test_cacherace.js
+++ b/browser/experiments/test/xpcshell/test_cacherace.js
@@ -1,104 +1,104 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-"use strict";
-
-Cu.import("resource://testing-common/httpd.js");
-Cu.import("resource://gre/modules/Timer.jsm");
-
-const MANIFEST_HANDLER         = "manifests/handler";
-
-const SEC_IN_ONE_DAY  = 24 * 60 * 60;
-const MS_IN_ONE_DAY   = SEC_IN_ONE_DAY * 1000;
-
-var gProfileDir          = null;
-var gHttpServer          = null;
-var gHttpRoot            = null;
-var gDataRoot            = null;
-var gPolicy              = null;
-var gManifestObject      = null;
-var gManifestHandlerURI  = null;
-
-function run_test() {
-  run_next_test();
-}
-
-add_task(function* test_setup() {
-  loadAddonManager();
-  gProfileDir = do_get_profile();
-  yield removeCacheFile();
-
-  gHttpServer = new HttpServer();
-  gHttpServer.start(-1);
-  let port = gHttpServer.identity.primaryPort;
-  gHttpRoot = "http://localhost:" + port + "/";
-  gDataRoot = gHttpRoot + "data/";
-  gManifestHandlerURI = gHttpRoot + MANIFEST_HANDLER;
-  gHttpServer.registerDirectory("/data/", do_get_cwd());
-  gHttpServer.registerPathHandler("/" + MANIFEST_HANDLER, (request, response) => {
-    response.setStatusLine(null, 200, "OK");
-    response.write(JSON.stringify(gManifestObject));
-    response.processAsync();
-    response.finish();
-  });
-  do_register_cleanup(() => gHttpServer.stop(() => {}));
-
-  Services.prefs.setBoolPref(PREF_EXPERIMENTS_ENABLED, true);
-  Services.prefs.setIntPref(PREF_LOGGING_LEVEL, 0);
-  Services.prefs.setBoolPref(PREF_LOGGING_DUMP, true);
-  Services.prefs.setCharPref(PREF_MANIFEST_URI, gManifestHandlerURI);
-  Services.prefs.setIntPref(PREF_FETCHINTERVAL, 0);
-
-  let ExperimentsScope = Cu.import("resource:///modules/experiments/Experiments.jsm");
-  let Experiments = ExperimentsScope.Experiments;
-
-  gPolicy = new Experiments.Policy();
-  patchPolicy(gPolicy, {
-    updatechannel: () => "nightly",
-    delayCacheWrite: (promise) => {
-      return new Promise((resolve, reject) => {
-        promise.then(
-          (result) => { setTimeout(() => resolve(result), 500); },
-          (err) => { reject(err); }
-        );
-      });
-    },
-  });
-
-  let now = new Date(2014, 5, 1, 12);
-  defineNow(gPolicy, now);
-
-  let experimentName = "experiment-racybranch.xpi";
-  let experimentPath = getExperimentPath(experimentName);
-  let experimentHash = "sha1:" + sha1File(experimentPath);
-
-  gManifestObject = {
-    version: 1,
-    experiments: [
-      {
-        id: "test-experiment-racybranch@tests.mozilla.org",
-        xpiURL: gDataRoot + "experiment-racybranch.xpi",
-        xpiHash: experimentHash,
-        maxActiveSeconds: 10 * SEC_IN_ONE_DAY,
-        appName: ["XPCShell"],
-        channel: ["nightly"],
-        startTime: dateToSeconds(futureDate(now, -MS_IN_ONE_DAY)),
-        endTime: dateToSeconds(futureDate(now, MS_IN_ONE_DAY)),
-      },
-    ],
-  };
-
-  do_print("gManifestObject: " + JSON.stringify(gManifestObject));
-
-  // In order for the addon manager to work properly, we hack
-  // Experiments.instance which is used by the XPIProvider
-  let experiments = new Experiments.Experiments(gPolicy);
-  Assert.strictEqual(ExperimentsScope.gExperiments, null);
-  ExperimentsScope.gExperiments = experiments;
-
-  yield experiments.updateManifest();
-  let active = experiments._getActiveExperiment();
-  Assert.ok(active);
-  Assert.equal(active.branch, "racy-set");
-  Assert.ok(!experiments._dirty);
-});
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+Cu.import("resource://testing-common/httpd.js");
+Cu.import("resource://gre/modules/Timer.jsm");
+
+const MANIFEST_HANDLER         = "manifests/handler";
+
+const SEC_IN_ONE_DAY  = 24 * 60 * 60;
+const MS_IN_ONE_DAY   = SEC_IN_ONE_DAY * 1000;
+
+var gProfileDir          = null;
+var gHttpServer          = null;
+var gHttpRoot            = null;
+var gDataRoot            = null;
+var gPolicy              = null;
+var gManifestObject      = null;
+var gManifestHandlerURI  = null;
+
+function run_test() {
+  run_next_test();
+}
+
+add_task(function* test_setup() {
+  loadAddonManager();
+  gProfileDir = do_get_profile();
+  yield removeCacheFile();
+
+  gHttpServer = new HttpServer();
+  gHttpServer.start(-1);
+  let port = gHttpServer.identity.primaryPort;
+  gHttpRoot = "http://localhost:" + port + "/";
+  gDataRoot = gHttpRoot + "data/";
+  gManifestHandlerURI = gHttpRoot + MANIFEST_HANDLER;
+  gHttpServer.registerDirectory("/data/", do_get_cwd());
+  gHttpServer.registerPathHandler("/" + MANIFEST_HANDLER, (request, response) => {
+    response.setStatusLine(null, 200, "OK");
+    response.write(JSON.stringify(gManifestObject));
+    response.processAsync();
+    response.finish();
+  });
+  do_register_cleanup(() => gHttpServer.stop(() => {}));
+
+  Services.prefs.setBoolPref(PREF_EXPERIMENTS_ENABLED, true);
+  Services.prefs.setIntPref(PREF_LOGGING_LEVEL, 0);
+  Services.prefs.setBoolPref(PREF_LOGGING_DUMP, true);
+  Services.prefs.setCharPref(PREF_MANIFEST_URI, gManifestHandlerURI);
+  Services.prefs.setIntPref(PREF_FETCHINTERVAL, 0);
+
+  let ExperimentsScope = Cu.import("resource:///modules/experiments/Experiments.jsm");
+  let Experiments = ExperimentsScope.Experiments;
+
+  gPolicy = new Experiments.Policy();
+  patchPolicy(gPolicy, {
+    updatechannel: () => "nightly",
+    delayCacheWrite: (promise) => {
+      return new Promise((resolve, reject) => {
+        promise.then(
+          (result) => { setTimeout(() => resolve(result), 500); },
+          (err) => { reject(err); }
+        );
+      });
+    },
+  });
+
+  let now = new Date(2014, 5, 1, 12);
+  defineNow(gPolicy, now);
+
+  let experimentName = "experiment-racybranch.xpi";
+  let experimentPath = getExperimentPath(experimentName);
+  let experimentHash = "sha1:" + sha1File(experimentPath);
+
+  gManifestObject = {
+    version: 1,
+    experiments: [
+      {
+        id: "test-experiment-racybranch@tests.mozilla.org",
+        xpiURL: gDataRoot + "experiment-racybranch.xpi",
+        xpiHash: experimentHash,
+        maxActiveSeconds: 10 * SEC_IN_ONE_DAY,
+        appName: ["XPCShell"],
+        channel: ["nightly"],
+        startTime: dateToSeconds(futureDate(now, -MS_IN_ONE_DAY)),
+        endTime: dateToSeconds(futureDate(now, MS_IN_ONE_DAY)),
+      },
+    ],
+  };
+
+  do_print("gManifestObject: " + JSON.stringify(gManifestObject));
+
+  // In order for the addon manager to work properly, we hack
+  // Experiments.instance which is used by the XPIProvider
+  let experiments = new Experiments.Experiments(gPolicy);
+  Assert.strictEqual(ExperimentsScope.gExperiments, null);
+  ExperimentsScope.gExperiments = experiments;
+
+  yield experiments.updateManifest();
+  let active = experiments._getActiveExperiment();
+  Assert.ok(active);
+  Assert.equal(active.branch, "racy-set");
+  Assert.ok(!experiments._dirty);
+});
--- a/browser/experiments/test/xpcshell/test_nethang_bug1012924.js
+++ b/browser/experiments/test/xpcshell/test_nethang_bug1012924.js
@@ -1,47 +1,47 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-"use strict";
-
-Cu.import("resource://testing-common/httpd.js");
-Cu.import("resource:///modules/experiments/Experiments.jsm");
-
-const MANIFEST_HANDLER         = "manifests/handler";
-
-function run_test() {
-  run_next_test();
-}
-
-add_task(function* test_setup() {
-  loadAddonManager();
-  do_get_profile();
-
-  let httpServer = new HttpServer();
-  httpServer.start(-1);
-  let port = httpServer.identity.primaryPort;
-  let httpRoot = "http://localhost:" + port + "/";
-  let handlerURI = httpRoot + MANIFEST_HANDLER;
-  httpServer.registerPathHandler("/" + MANIFEST_HANDLER,
-    (request, response) => {
-      response.processAsync();
-      response.setStatus(null, 200, "OK");
-      response.write("["); // never finish!
-    });
-
-  do_register_cleanup(() => httpServer.stop(() => {}));
-  Services.prefs.setBoolPref(PREF_EXPERIMENTS_ENABLED, true);
-  Services.prefs.setIntPref(PREF_LOGGING_LEVEL, 0);
-  Services.prefs.setBoolPref(PREF_LOGGING_DUMP, true);
-  Services.prefs.setCharPref(PREF_MANIFEST_URI, handlerURI);
-  Services.prefs.setIntPref(PREF_FETCHINTERVAL, 0);
-
-  let experiments = Experiments.instance();
-  experiments.updateManifest().then(
-    () => {
-      Assert.ok(true, "updateManifest finished successfully");
-    },
-    (e) => {
-      do_throw("updateManifest should not have failed: got error " + e);
-    });
-  yield experiments.uninit();
-});
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+Cu.import("resource://testing-common/httpd.js");
+Cu.import("resource:///modules/experiments/Experiments.jsm");
+
+const MANIFEST_HANDLER         = "manifests/handler";
+
+function run_test() {
+  run_next_test();
+}
+
+add_task(function* test_setup() {
+  loadAddonManager();
+  do_get_profile();
+
+  let httpServer = new HttpServer();
+  httpServer.start(-1);
+  let port = httpServer.identity.primaryPort;
+  let httpRoot = "http://localhost:" + port + "/";
+  let handlerURI = httpRoot + MANIFEST_HANDLER;
+  httpServer.registerPathHandler("/" + MANIFEST_HANDLER,
+    (request, response) => {
+      response.processAsync();
+      response.setStatus(null, 200, "OK");
+      response.write("["); // never finish!
+    });
+
+  do_register_cleanup(() => httpServer.stop(() => {}));
+  Services.prefs.setBoolPref(PREF_EXPERIMENTS_ENABLED, true);
+  Services.prefs.setIntPref(PREF_LOGGING_LEVEL, 0);
+  Services.prefs.setBoolPref(PREF_LOGGING_DUMP, true);
+  Services.prefs.setCharPref(PREF_MANIFEST_URI, handlerURI);
+  Services.prefs.setIntPref(PREF_FETCHINTERVAL, 0);
+
+  let experiments = Experiments.instance();
+  experiments.updateManifest().then(
+    () => {
+      Assert.ok(true, "updateManifest finished successfully");
+    },
+    (e) => {
+      do_throw("updateManifest should not have failed: got error " + e);
+    });
+  yield experiments.uninit();
+});
--- a/browser/experiments/test/xpcshell/test_upgrade.js
+++ b/browser/experiments/test/xpcshell/test_upgrade.js
@@ -1,55 +1,55 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-"use strict";
-Cu.import("resource:///modules/experiments/Experiments.jsm");
-
-const SEC_IN_ONE_DAY  = 24 * 60 * 60;
-const MS_IN_ONE_DAY   = SEC_IN_ONE_DAY * 1000;
-
-var cacheData = {
-  _enabled: true,
-  _manifestData: {
-    id: "foobartestid",
-    xpiURL: "http://example.com/foo.xpi",
-    xpiHash: "sha256:abcde",
-    startTime: 0,
-    endTime: 2000000000,
-    maxActiveSeconds: 40000000,
-    appName: "TestApp",
-    channel: "test-foo",
-  },
-  _needsUpdate: false,
-  _randomValue: 0.5,
-  _failedStart: false,
-  _name: "Foo",
-  _description: "Foobar",
-  _homepageURL: "",
-  _addonId: "foo@test",
-  _startDate: 0,
-  _endDate: 2000000000,
-  _branch: null
-};
-
-add_task(function* test_valid() {
-  let e = new Experiments.ExperimentEntry();
-  Assert.ok(e.initFromCacheData(cacheData));
-  Assert.ok(e.enabled);
-});
-
-add_task(function* test_upgrade() {
-  let e = new Experiments.ExperimentEntry();
-  delete cacheData._branch;
-  Assert.ok(e.initFromCacheData(cacheData));
-  Assert.ok(e.enabled);
-});
-
-add_task(function* test_missing() {
-  let e = new Experiments.ExperimentEntry();
-  delete cacheData._name;
-  Assert.ok(!e.initFromCacheData(cacheData));
-});
-
-function run_test() {
-  run_next_test();
-}
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+Cu.import("resource:///modules/experiments/Experiments.jsm");
+
+const SEC_IN_ONE_DAY  = 24 * 60 * 60;
+const MS_IN_ONE_DAY   = SEC_IN_ONE_DAY * 1000;
+
+var cacheData = {
+  _enabled: true,
+  _manifestData: {
+    id: "foobartestid",
+    xpiURL: "http://example.com/foo.xpi",
+    xpiHash: "sha256:abcde",
+    startTime: 0,
+    endTime: 2000000000,
+    maxActiveSeconds: 40000000,
+    appName: "TestApp",
+    channel: "test-foo",
+  },
+  _needsUpdate: false,
+  _randomValue: 0.5,
+  _failedStart: false,
+  _name: "Foo",
+  _description: "Foobar",
+  _homepageURL: "",
+  _addonId: "foo@test",
+  _startDate: 0,
+  _endDate: 2000000000,
+  _branch: null
+};
+
+add_task(function* test_valid() {
+  let e = new Experiments.ExperimentEntry();
+  Assert.ok(e.initFromCacheData(cacheData));
+  Assert.ok(e.enabled);
+});
+
+add_task(function* test_upgrade() {
+  let e = new Experiments.ExperimentEntry();
+  delete cacheData._branch;
+  Assert.ok(e.initFromCacheData(cacheData));
+  Assert.ok(e.enabled);
+});
+
+add_task(function* test_missing() {
+  let e = new Experiments.ExperimentEntry();
+  delete cacheData._name;
+  Assert.ok(!e.initFromCacheData(cacheData));
+});
+
+function run_test() {
+  run_next_test();
+}
--- a/browser/modules/FormSubmitObserver.jsm
+++ b/browser/modules/FormSubmitObserver.jsm
@@ -37,20 +37,20 @@ FormSubmitObserver.prototype =
   /*
    * Public apis
    */
 
   init: function(aWindow, aTabChildGlobal)
   {
     this._content = aWindow;
     this._tab = aTabChildGlobal;
-    this._mm =
-      this._content.QueryInterface(Ci.nsIInterfaceRequestor)
-                   .getInterface(Ci.nsIDocShell)
-                   .sameTypeRootTreeItem
+    this._mm =
+      this._content.QueryInterface(Ci.nsIInterfaceRequestor)
+                   .getInterface(Ci.nsIDocShell)
+                   .sameTypeRootTreeItem
                    .QueryInterface(Ci.nsIDocShell)
                    .QueryInterface(Ci.nsIInterfaceRequestor)
                    .getInterface(Ci.nsIContentFrameMessageManager);
 
     // nsIFormSubmitObserver callback about invalid forms. See HTMLFormElement
     // for details.
     Services.obs.addObserver(this, "invalidformsubmit", false);
     this._tab.addEventListener("pageshow", this, false);
@@ -137,17 +137,17 @@ FormSubmitObserver.prototype =
     element.addEventListener("blur", this, false);
 
     this._showPopup(element);
   },
 
   /*
    * Internal
    */
-
+
   /*
    * Handles input changes on the form element we've associated a popup
    * with. Updates the validation message or closes the popup if form data
    * becomes valid.
    */
   _onInput: function (aEvent) {
     let element = aEvent.originalTarget;
 
@@ -213,18 +213,18 @@ FormSubmitObserver.prototype =
     }
     this._mm.sendAsyncMessage("FormValidation:ShowPopup", panelData);
   },
 
   _hidePopup: function () {
     this._mm.sendAsyncMessage("FormValidation:HidePopup", {});
   },
 
-  _getWindowUtils: function () {
-    return this._content.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils);
+  _getWindowUtils: function () {
+    return this._content.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils);
   },
 
   _isRootDocumentEvent: function (aEvent) {
     if (this._content == null) {
       return true;
     }
     let target = aEvent.originalTarget;
     return (target == this._content.document ||
--- a/browser/modules/LaterRun.jsm
+++ b/browser/modules/LaterRun.jsm
@@ -1,170 +1,170 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-const { classes: Cc, interfaces: Ci, utils: Cu } = Components;
-
-this.EXPORTED_SYMBOLS = ["LaterRun"];
-
-Cu.import("resource://gre/modules/Preferences.jsm");
-Cu.import("resource://gre/modules/Services.jsm");
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "setInterval", "resource://gre/modules/Timer.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "clearInterval", "resource://gre/modules/Timer.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "RecentWindow", "resource://gre/modules/RecentWindow.jsm");
-
-const kEnabledPref = "browser.laterrun.enabled";
-const kPagePrefRoot = "browser.laterrun.pages.";
-// Number of sessions we've been active in
-const kSessionCountPref = "browser.laterrun.bookkeeping.sessionCount";
-// Time the profile was created at:
-const kProfileCreationTime = "browser.laterrun.bookkeeping.profileCreationTime";
-
-// After 50 sessions or 1 month since install, assume we will no longer be
-// interested in showing anything to "new" users
-const kSelfDestructSessionLimit = 50;
-const kSelfDestructHoursLimit = 31 * 24;
-
-class Page {
-  constructor({pref, minimumHoursSinceInstall, minimumSessionCount, requireBoth, url}) {
-    this.pref = pref;
-    this.minimumHoursSinceInstall = minimumHoursSinceInstall || 0;
-    this.minimumSessionCount = minimumSessionCount || 1;
-    this.requireBoth = requireBoth || false;
-    this.url = url;
-  }
-
-  get hasRun() {
-    return Preferences.get(this.pref + "hasRun", false);
-  }
-
-  applies(sessionInfo) {
-    if (this.hasRun) {
-      return false;
-    }
-    if (this.requireBoth) {
-      return sessionInfo.sessionCount >= this.minimumSessionCount &&
-             sessionInfo.hoursSinceInstall >= this.minimumHoursSinceInstall;
-    }
-    return sessionInfo.sessionCount >= this.minimumSessionCount ||
-           sessionInfo.hoursSinceInstall >= this.minimumHoursSinceInstall;
-  }
-}
-
-let LaterRun = {
-  init() {
-    if (!this.enabled) {
-      return;
-    }
-    // If this is the first run, set the time we were installed
-    if (!Preferences.has(kProfileCreationTime)) {
-      // We need to store seconds in order to fit within int prefs.
-      Preferences.set(kProfileCreationTime, Math.floor(Date.now() / 1000));
-    }
-    this.sessionCount++;
-
-    if (this.hoursSinceInstall > kSelfDestructHoursLimit ||
-        this.sessionCount > kSelfDestructSessionLimit) {
-      this.selfDestruct();
-      return;
-    }
-  },
-
-  // The enabled, hoursSinceInstall and sessionCount properties mirror the
-  // preferences system, and are here for convenience.
-  get enabled() {
-    return Preferences.get(kEnabledPref, false);
-  },
-
-  set enabled(val) {
-    let wasEnabled = this.enabled;
-    Preferences.set(kEnabledPref, val);
-    if (val && !wasEnabled) {
-      this.init();
-    }
-  },
-
-  get hoursSinceInstall() {
-    let installStamp = Preferences.get(kProfileCreationTime, Date.now() / 1000);
-    return Math.floor((Date.now() / 1000 - installStamp) / 3600);
-  },
-
-  get sessionCount() {
-    if (this._sessionCount) {
-      return this._sessionCount;
-    }
-    return this._sessionCount = Preferences.get(kSessionCountPref, 0);
-  },
-
-  set sessionCount(val) {
-    this._sessionCount = val;
-    Preferences.set(kSessionCountPref, val);
-  },
-
-  // Because we don't want to keep incrementing this indefinitely for no reason,
-  // we will turn ourselves off after a set amount of time/sessions (see top of
-  // file).
-  selfDestruct() {
-    Preferences.set(kEnabledPref, false);
-  },
-
-  // Create an array of Page objects based on the currently set prefs
-  readPages() {
-    // Enumerate all the pages.
-    let allPrefsForPages = Services.prefs.getChildList(kPagePrefRoot);
-    let pageDataStore = new Map();
-    for (let pref of allPrefsForPages) {
-      let [slug, prop] = pref.substring(kPagePrefRoot.length).split(".");
-      if (!pageDataStore.has(slug)) {
-        pageDataStore.set(slug, {pref: pref.substring(0, pref.length - prop.length)});
-      }
-      let defaultPrefValue = 0;
-      if (prop == "requireBoth" || prop == "hasRun") {
-        defaultPrefValue = false;
-      } else if (prop == "url") {
-        defaultPrefValue = "";
-      }
-      pageDataStore.get(slug)[prop] = Preferences.get(pref, defaultPrefValue);
-    }
-    let rv = [];
-    for (let [, pageData] of pageDataStore) {
-      if (pageData.url) {
-        let uri = null;
-        try {
-          uri = Services.io.newURI(pageData.url.trim(), null, null);
-        } catch (ex) {
-          Cu.reportError("Invalid LaterRun page URL " + pageData.url + " ignored.");
-        }
-        if (!uri.schemeIs("https")) {
-          Cu.reportError("Insecure LaterRun page URL " + uri.spec + " ignored.");
-        } else {
-          pageData.url = uri.spec;
-          rv.push(new Page(pageData));
-        }
-      }
-    }
-    return rv;
-  },
-
-  // Return a URL for display as a 'later run' page if its criteria are matched,
-  // or null otherwise.
-  // NB: will only return one page at a time; if multiple pages match, it's up
-  // to the preference service which one gets shown first, and the next one
-  // will be shown next startup instead.
-  getURL() {
-    if (!this.enabled) {
-      return null;
-    }
-    let pages = this.readPages();
-    let page = pages.find(page => page.applies(this));
-    if (page) {
-      Services.prefs.setBoolPref(page.pref + "hasRun", true);
-      return page.url;
-    }
-    return null;
-  },
-};
-
-LaterRun.init();
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+const { classes: Cc, interfaces: Ci, utils: Cu } = Components;
+
+this.EXPORTED_SYMBOLS = ["LaterRun"];
+
+Cu.import("resource://gre/modules/Preferences.jsm");
+Cu.import("resource://gre/modules/Services.jsm");
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "setInterval", "resource://gre/modules/Timer.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "clearInterval", "resource://gre/modules/Timer.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "RecentWindow", "resource://gre/modules/RecentWindow.jsm");
+
+const kEnabledPref = "browser.laterrun.enabled";
+const kPagePrefRoot = "browser.laterrun.pages.";
+// Number of sessions we've been active in
+const kSessionCountPref = "browser.laterrun.bookkeeping.sessionCount";
+// Time the profile was created at:
+const kProfileCreationTime = "browser.laterrun.bookkeeping.profileCreationTime";
+
+// After 50 sessions or 1 month since install, assume we will no longer be
+// interested in showing anything to "new" users
+const kSelfDestructSessionLimit = 50;
+const kSelfDestructHoursLimit = 31 * 24;
+
+class Page {
+  constructor({pref, minimumHoursSinceInstall, minimumSessionCount, requireBoth, url}) {
+    this.pref = pref;
+    this.minimumHoursSinceInstall = minimumHoursSinceInstall || 0;
+    this.minimumSessionCount = minimumSessionCount || 1;
+    this.requireBoth = requireBoth || false;
+    this.url = url;
+  }
+
+  get hasRun() {
+    return Preferences.get(this.pref + "hasRun", false);
+  }
+
+  applies(sessionInfo) {
+    if (this.hasRun) {
+      return false;
+    }
+    if (this.requireBoth) {
+      return sessionInfo.sessionCount >= this.minimumSessionCount &&
+             sessionInfo.hoursSinceInstall >= this.minimumHoursSinceInstall;
+    }
+    return sessionInfo.sessionCount >= this.minimumSessionCount ||
+           sessionInfo.hoursSinceInstall >= this.minimumHoursSinceInstall;
+  }
+}
+
+let LaterRun = {
+  init() {
+    if (!this.enabled) {
+      return;
+    }
+    // If this is the first run, set the time we were installed
+    if (!Preferences.has(kProfileCreationTime)) {
+      // We need to store seconds in order to fit within int prefs.
+      Preferences.set(kProfileCreationTime, Math.floor(Date.now() / 1000));
+    }
+    this.sessionCount++;
+
+    if (this.hoursSinceInstall > kSelfDestructHoursLimit ||
+        this.sessionCount > kSelfDestructSessionLimit) {
+      this.selfDestruct();
+      return;
+    }
+  },
+
+  // The enabled, hoursSinceInstall and sessionCount properties mirror the
+  // preferences system, and are here for convenience.
+  get enabled() {
+    return Preferences.get(kEnabledPref, false);
+  },
+
+  set enabled(val) {
+    let wasEnabled = this.enabled;
+    Preferences.set(kEnabledPref, val);
+    if (val && !wasEnabled) {
+      this.init();
+    }
+  },
+
+  get hoursSinceInstall() {
+    let installStamp = Preferences.get(kProfileCreationTime, Date.now() / 1000);
+    return Math.floor((Date.now() / 1000 - installStamp) / 3600);
+  },
+
+  get sessionCount() {
+    if (this._sessionCount) {
+      return this._sessionCount;
+    }
+    return this._sessionCount = Preferences.get(kSessionCountPref, 0);
+  },
+
+  set sessionCount(val) {
+    this._sessionCount = val;
+    Preferences.set(kSessionCountPref, val);
+  },
+
+  // Because we don't want to keep incrementing this indefinitely for no reason,
+  // we will turn ourselves off after a set amount of time/sessions (see top of
+  // file).
+  selfDestruct() {
+    Preferences.set(kEnabledPref, false);
+  },
+
+  // Create an array of Page objects based on the currently set prefs
+  readPages() {
+    // Enumerate all the pages.
+    let allPrefsForPages = Services.prefs.getChildList(kPagePrefRoot);
+    let pageDataStore = new Map();
+    for (let pref of allPrefsForPages) {
+      let [slug, prop] = pref.substring(kPagePrefRoot.length).split(".");
+      if (!pageDataStore.has(slug)) {
+        pageDataStore.set(slug, {pref: pref.substring(0, pref.length - prop.length)});
+      }
+      let defaultPrefValue = 0;
+      if (prop == "requireBoth" || prop == "hasRun") {
+        defaultPrefValue = false;
+      } else if (prop == "url") {
+        defaultPrefValue = "";
+      }
+      pageDataStore.get(slug)[prop] = Preferences.get(pref, defaultPrefValue);
+    }
+    let rv = [];
+    for (let [, pageData] of pageDataStore) {
+      if (pageData.url) {
+        let uri = null;
+        try {
+          uri = Services.io.newURI(pageData.url.trim(), null, null);
+        } catch (ex) {
+          Cu.reportError("Invalid LaterRun page URL " + pageData.url + " ignored.");
+        }
+        if (!uri.schemeIs("https")) {
+          Cu.reportError("Insecure LaterRun page URL " + uri.spec + " ignored.");
+        } else {
+          pageData.url = uri.spec;
+          rv.push(new Page(pageData));
+        }
+      }
+    }
+    return rv;
+  },
+
+  // Return a URL for display as a 'later run' page if its criteria are matched,
+  // or null otherwise.
+  // NB: will only return one page at a time; if multiple pages match, it's up
+  // to the preference service which one gets shown first, and the next one
+  // will be shown next startup instead.
+  getURL() {
+    if (!this.enabled) {
+      return null;
+    }
+    let pages = this.readPages();
+    let page = pages.find(page => page.applies(this));
+    if (page) {
+      Services.prefs.setBoolPref(page.pref + "hasRun", true);
+      return page.url;
+    }
+    return null;
+  },
+};
+
+LaterRun.init();
--- a/browser/modules/test/xpcshell/test_LaterRun.js
+++ b/browser/modules/test/xpcshell/test_LaterRun.js
@@ -1,131 +1,131 @@
-"use strict";
-
-const kEnabledPref = "browser.laterrun.enabled";
-const kPagePrefRoot = "browser.laterrun.pages.";
-const kSessionCountPref = "browser.laterrun.bookkeeping.sessionCount";
-const kProfileCreationTime = "browser.laterrun.bookkeeping.profileCreationTime";
-
-Components.utils.import("resource://gre/modules/Services.jsm");
-Components.utils.import("resource:///modules/LaterRun.jsm");
-
-Services.prefs.setBoolPref(kEnabledPref, true);
-
-add_task(function* test_page_applies() {
-  Services.prefs.setCharPref(kPagePrefRoot + "test_LaterRun_unittest.url", "https://www.mozilla.org/");
-  Services.prefs.setIntPref(kPagePrefRoot + "test_LaterRun_unittest.minimumHoursSinceInstall", 10);
-  Services.prefs.setIntPref(kPagePrefRoot + "test_LaterRun_unittest.minimumSessionCount", 3);
-
-  let pages = LaterRun.readPages();
-  // We have to filter the pages because it's possible Firefox ships with other URLs
-  // that get included in this test.
-  pages = pages.filter(page => page.pref == kPagePrefRoot + "test_LaterRun_unittest.");
-  Assert.equal(pages.length, 1, "Got 1 page");
-  let page = pages[0];
-  Assert.equal(page.pref, kPagePrefRoot + "test_LaterRun_unittest.", "Should know its own pref");
-  Assert.equal(page.minimumHoursSinceInstall, 10, "Needs to have 10 hours since install");
-  Assert.equal(page.minimumSessionCount, 3, "Needs to have 3 sessions");
-  Assert.equal(page.requireBoth, false, "Either requirement is enough");
-  Assert.equal(page.url, "https://www.mozilla.org/", "URL is stored correctly");
-
-  Assert.ok(page.applies({hoursSinceInstall: 1, sessionCount: 3}),
-            "Applies when session count has been met.");
-  Assert.ok(page.applies({hoursSinceInstall: 1, sessionCount: 4}),
-            "Applies when session count has been exceeded.");
-  Assert.ok(page.applies({hoursSinceInstall: 10, sessionCount: 2}),
-            "Applies when total session time has been met.");
-  Assert.ok(page.applies({hoursSinceInstall: 20, sessionCount: 2}),
-            "Applies when total session time has been exceeded.");
-  Assert.ok(page.applies({hoursSinceInstall: 10, sessionCount: 3}),
-            "Applies when both time and session count have been met.");
-  Assert.ok(!page.applies({hoursSinceInstall: 1, sessionCount: 1}),
-            "Does not apply when neither time and session count have been met.");
-
-  page.requireBoth = true;
-
-  Assert.ok(!page.applies({hoursSinceInstall: 1, sessionCount: 3}),
-            "Does not apply when only session count has been met.");
-  Assert.ok(!page.applies({hoursSinceInstall: 1, sessionCount: 4}),
-            "Does not apply when only session count has been exceeded.");
-  Assert.ok(!page.applies({hoursSinceInstall: 10, sessionCount: 2}),
-            "Does not apply when only total session time has been met.");
-  Assert.ok(!page.applies({hoursSinceInstall: 20, sessionCount: 2}),
-            "Does not apply when only total session time has been exceeded.");
-  Assert.ok(page.applies({hoursSinceInstall: 10, sessionCount: 3}),
-            "Applies when both time and session count have been met.");
-  Assert.ok(!page.applies({hoursSinceInstall: 1, sessionCount: 1}),
-            "Does not apply when neither time and session count have been met.");
-
-  // Check that pages that have run never apply:
-  Services.prefs.setBoolPref(kPagePrefRoot + "test_LaterRun_unittest.hasRun", true);
-  page.requireBoth = false;
-
-  Assert.ok(!page.applies({hoursSinceInstall: 1, sessionCount: 3}),
-            "Does not apply when page has already run (sessionCount equal).");
-  Assert.ok(!page.applies({hoursSinceInstall: 1, sessionCount: 4}),
-            "Does not apply when page has already run (sessionCount exceeding).");
-  Assert.ok(!page.applies({hoursSinceInstall: 10, sessionCount: 2}),
-            "Does not apply when page has already run (hoursSinceInstall equal).");
-  Assert.ok(!page.applies({hoursSinceInstall: 20, sessionCount: 2}),
-            "Does not apply when page has already run (hoursSinceInstall exceeding).");
-  Assert.ok(!page.applies({hoursSinceInstall: 10, sessionCount: 3}),
-            "Does not apply when page has already run (both criteria equal).");
-  Assert.ok(!page.applies({hoursSinceInstall: 1, sessionCount: 1}),
-            "Does not apply when page has already run (both criteria insufficient anyway).");
-
-  clearAllPagePrefs();
-});
-
-add_task(function* test_get_URL() {
-  Services.prefs.setIntPref(kProfileCreationTime, Math.floor((Date.now() - 11 * 60 * 60 * 1000) / 1000));
-  Services.prefs.setCharPref(kPagePrefRoot + "test_LaterRun_unittest.url", "https://www.mozilla.org/");
-  Services.prefs.setIntPref(kPagePrefRoot + "test_LaterRun_unittest.minimumHoursSinceInstall", 10);
-  Services.prefs.setIntPref(kPagePrefRoot + "test_LaterRun_unittest.minimumSessionCount", 3);
-  let pages = LaterRun.readPages();
-  // We have to filter the pages because it's possible Firefox ships with other URLs
-  // that get included in this test.
-  pages = pages.filter(page => page.pref == kPagePrefRoot + "test_LaterRun_unittest.");
-  Assert.equal(pages.length, 1, "Should only be 1 matching page");
-  let page = pages[0];
-  let url;
-  do {
-    url = LaterRun.getURL();
-    // We have to loop because it's possible Firefox ships with other URLs that get triggered by
-    // this test.
-  } while (url && url != "https://www.mozilla.org/");
-  Assert.equal(url, "https://www.mozilla.org/", "URL should be as expected when prefs are set.");
-  Assert.ok(Services.prefs.prefHasUserValue(kPagePrefRoot + "test_LaterRun_unittest.hasRun"), "Should have set pref");
-  Assert.ok(Services.prefs.getBoolPref(kPagePrefRoot + "test_LaterRun_unittest.hasRun"), "Should have set pref to true");
-  Assert.ok(page.hasRun, "Other page objects should know it has run, too.");
-
-  clearAllPagePrefs();
-});
-
-add_task(function* test_insecure_urls() {
-  Services.prefs.setCharPref(kPagePrefRoot + "test_LaterRun_unittest.url", "http://www.mozilla.org/");
-  Services.prefs.setIntPref(kPagePrefRoot + "test_LaterRun_unittest.minimumHoursSinceInstall", 10);
-  Services.prefs.setIntPref(kPagePrefRoot + "test_LaterRun_unittest.minimumSessionCount", 3);
-  let pages = LaterRun.readPages();
-  // We have to filter the pages because it's possible Firefox ships with other URLs
-  // that get triggered in this test.
-  pages = pages.filter(page => page.pref == kPagePrefRoot + "test_LaterRun_unittest.");
-  Assert.equal(pages.length, 0, "URL with non-https scheme should get ignored");
-  clearAllPagePrefs();
-});
-
-add_task(function* test_dynamic_pref_getter_setter() {
-  delete LaterRun._sessionCount;
-  Services.prefs.setIntPref(kSessionCountPref, 0);
-  Assert.equal(LaterRun.sessionCount, 0, "Should start at 0");
-
-  LaterRun.sessionCount++;
-  Assert.equal(LaterRun.sessionCount, 1, "Should increment.");
-  Assert.equal(Services.prefs.getIntPref(kSessionCountPref), 1, "Should update pref");
-});
-
-function clearAllPagePrefs() {
-  let allChangedPrefs = Services.prefs.getChildList(kPagePrefRoot);
-  for (let pref of allChangedPrefs) {
-    Services.prefs.clearUserPref(pref);
-  }
-}
-
+"use strict";
+
+const kEnabledPref = "browser.laterrun.enabled";
+const kPagePrefRoot = "browser.laterrun.pages.";
+const kSessionCountPref = "browser.laterrun.bookkeeping.sessionCount";
+const kProfileCreationTime = "browser.laterrun.bookkeeping.profileCreationTime";
+
+Components.utils.import("resource://gre/modules/Services.jsm");
+Components.utils.import("resource:///modules/LaterRun.jsm");
+
+Services.prefs.setBoolPref(kEnabledPref, true);
+
+add_task(function* test_page_applies() {
+  Services.prefs.setCharPref(kPagePrefRoot + "test_LaterRun_unittest.url", "https://www.mozilla.org/");
+  Services.prefs.setIntPref(kPagePrefRoot + "test_LaterRun_unittest.minimumHoursSinceInstall", 10);
+  Services.prefs.setIntPref(kPagePrefRoot + "test_LaterRun_unittest.minimumSessionCount", 3);
+
+  let pages = LaterRun.readPages();
+  // We have to filter the pages because it's possible Firefox ships with other URLs
+  // that get included in this test.
+  pages = pages.filter(page => page.pref == kPagePrefRoot + "test_LaterRun_unittest.");
+  Assert.equal(pages.length, 1, "Got 1 page");
+  let page = pages[0];
+  Assert.equal(page.pref, kPagePrefRoot + "test_LaterRun_unittest.", "Should know its own pref");
+  Assert.equal(page.minimumHoursSinceInstall, 10, "Needs to have 10 hours since install");
+  Assert.equal(page.minimumSessionCount, 3, "Needs to have 3 sessions");
+  Assert.equal(page.requireBoth, false, "Either requirement is enough");
+  Assert.equal(page.url, "https://www.mozilla.org/", "URL is stored correctly");
+
+  Assert.ok(page.applies({hoursSinceInstall: 1, sessionCount: 3}),
+            "Applies when session count has been met.");
+  Assert.ok(page.applies({hoursSinceInstall: 1, sessionCount: 4}),
+            "Applies when session count has been exceeded.");
+  Assert.ok(page.applies({hoursSinceInstall: 10, sessionCount: 2}),
+            "Applies when total session time has been met.");
+  Assert.ok(page.applies({hoursSinceInstall: 20, sessionCount: 2}),
+            "Applies when total session time has been exceeded.");
+  Assert.ok(page.applies({hoursSinceInstall: 10, sessionCount: 3}),
+            "Applies when both time and session count have been met.");
+  Assert.ok(!page.applies({hoursSinceInstall: 1, sessionCount: 1}),
+            "Does not apply when neither time and session count have been met.");
+
+  page.requireBoth = true;
+
+  Assert.ok(!page.applies({hoursSinceInstall: 1, sessionCount: 3}),
+            "Does not apply when only session count has been met.");
+  Assert.ok(!page.applies({hoursSinceInstall: 1, sessionCount: 4}),
+            "Does not apply when only session count has been exceeded.");
+  Assert.ok(!page.applies({hoursSinceInstall: 10, sessionCount: 2}),
+            "Does not apply when only total session time has been met.");
+  Assert.ok(!page.applies({hoursSinceInstall: 20, sessionCount: 2}),
+            "Does not apply when only total session time has been exceeded.");
+  Assert.ok(page.applies({hoursSinceInstall: 10, sessionCount: 3}),
+            "Applies when both time and session count have been met.");
+  Assert.ok(!page.applies({hoursSinceInstall: 1, sessionCount: 1}),
+            "Does not apply when neither time and session count have been met.");
+
+  // Check that pages that have run never apply:
+  Services.prefs.setBoolPref(kPagePrefRoot + "test_LaterRun_unittest.hasRun", true);
+  page.requireBoth = false;
+
+  Assert.ok(!page.applies({hoursSinceInstall: 1, sessionCount: 3}),
+            "Does not apply when page has already run (sessionCount equal).");
+  Assert.ok(!page.applies({hoursSinceInstall: 1, sessionCount: 4}),
+            "Does not apply when page has already run (sessionCount exceeding).");
+  Assert.ok(!page.applies({hoursSinceInstall: 10, sessionCount: 2}),
+            "Does not apply when page has already run (hoursSinceInstall equal).");
+  Assert.ok(!page.applies({hoursSinceInstall: 20, sessionCount: 2}),
+            "Does not apply when page has already run (hoursSinceInstall exceeding).");
+  Assert.ok(!page.applies({hoursSinceInstall: 10, sessionCount: 3}),
+            "Does not apply when page has already run (both criteria equal).");
+  Assert.ok(!page.applies({hoursSinceInstall: 1, sessionCount: 1}),
+            "Does not apply when page has already run (both criteria insufficient anyway).");
+
+  clearAllPagePrefs();
+});
+
+add_task(function* test_get_URL() {
+  Services.prefs.setIntPref(kProfileCreationTime, Math.floor((Date.now() - 11 * 60 * 60 * 1000) / 1000));
+  Services.prefs.setCharPref(kPagePrefRoot + "test_LaterRun_unittest.url", "https://www.mozilla.org/");
+  Services.prefs.setIntPref(kPagePrefRoot + "test_LaterRun_unittest.minimumHoursSinceInstall", 10);
+  Services.prefs.setIntPref(kPagePrefRoot + "test_LaterRun_unittest.minimumSessionCount", 3);
+  let pages = LaterRun.readPages();
+  // We have to filter the pages because it's possible Firefox ships with other URLs
+  // that get included in this test.
+  pages = pages.filter(page => page.pref == kPagePrefRoot + "test_LaterRun_unittest.");
+  Assert.equal(pages.length, 1, "Should only be 1 matching page");
+  let page = pages[0];
+  let url;
+  do {
+    url = LaterRun.getURL();
+    // We have to loop because it's possible Firefox ships with other URLs that get triggered by
+    // this test.
+  } while (url && url != "https://www.mozilla.org/");
+  Assert.equal(url, "https://www.mozilla.org/", "URL should be as expected when prefs are set.");
+  Assert.ok(Services.prefs.prefHasUserValue(kPagePrefRoot + "test_LaterRun_unittest.hasRun"), "Should have set pref");
+  Assert.ok(Services.prefs.getBoolPref(kPagePrefRoot + "test_LaterRun_unittest.hasRun"), "Should have set pref to true");
+  Assert.ok(page.hasRun, "Other page objects should know it has run, too.");
+
+  clearAllPagePrefs();
+});
+
+add_task(function* test_insecure_urls() {
+  Services.prefs.setCharPref(kPagePrefRoot + "test_LaterRun_unittest.url", "http://www.mozilla.org/");
+  Services.prefs.setIntPref(kPagePrefRoot + "test_LaterRun_unittest.minimumHoursSinceInstall", 10);
+  Services.prefs.setIntPref(kPagePrefRoot + "test_LaterRun_unittest.minimumSessionCount", 3);
+  let pages = LaterRun.readPages();
+  // We have to filter the pages because it's possible Firefox ships with other URLs
+  // that get triggered in this test.
+  pages = pages.filter(page => page.pref == kPagePrefRoot + "test_LaterRun_unittest.");
+  Assert.equal(pages.length, 0, "URL with non-https scheme should get ignored");
+  clearAllPagePrefs();
+});
+
+add_task(function* test_dynamic_pref_getter_setter() {
+  delete LaterRun._sessionCount;
+  Services.prefs.setIntPref(kSessionCountPref, 0);
+  Assert.equal(LaterRun.sessionCount, 0, "Should start at 0");
+
+  LaterRun.sessionCount++;
+  Assert.equal(LaterRun.sessionCount, 1, "Should increment.");
+  Assert.equal(Services.prefs.getIntPref(kSessionCountPref), 1, "Should update pref");
+});
+
+function clearAllPagePrefs() {
+  let allChangedPrefs = Services.prefs.getChildList(kPagePrefRoot);
+  for (let pref of allChangedPrefs) {
+    Services.prefs.clearUserPref(pref);
+  }
+}
+
--- a/toolkit/.eslintrc
+++ b/toolkit/.eslintrc
@@ -39,17 +39,17 @@
 
     // Two space indent
     // "indent": [2, 2, { "SwitchCase": 1 }],
 
     // Space after colon not before in property declarations
     // "key-spacing": [2, { "beforeColon": false, "afterColon": true, "mode": "minimum" }],
 
     // Unix linebreaks
-    // "linebreak-style": [2, "unix"],
+    "linebreak-style": [2, "unix"],
 
     // Always require parenthesis for new calls
     // "new-parens": 2,
 
     // Use [] instead of Array()
     // "no-array-constructor": 2,
 
     // No duplicate arguments in function declarations
--- a/toolkit/components/filewatcher/tests/xpcshell/test_remove_non_watched.js
+++ b/toolkit/components/filewatcher/tests/xpcshell/test_remove_non_watched.js
@@ -1,39 +1,39 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-function run_test() {
-  // Set up profile. We will use profile path create some test files.
-  do_get_profile();
-
-  // Start executing the tests.
-  run_next_test();
-}
-
-/**
- * Test removing non watched path
- */
-add_task(function* test_remove_not_watched() {
-  let nonExistingDir =
-    OS.Path.join(OS.Constants.Path.profileDir, "absolutelyNotExisting");
-
-  // Instantiate the native watcher.
-  let watcher = makeWatcher();
-
-  // Try to un-watch a path which wasn't being watched.
-  watcher.removePath(
-    nonExistingDir,
-    function(changed) {
-      do_throw("No change is expected in this test.");
-    },
-    function(xpcomError, osError) {
-      // When removing a resource which wasn't being watched, it should silently
-      // ignore the request.
-      do_throw("Unexpected exception: "
-               + xpcomError + " (XPCOM) "
-               + osError + " (OS Error)");
-    }
-  );
-});
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+function run_test() {
+  // Set up profile. We will use profile path create some test files.
+  do_get_profile();
+
+  // Start executing the tests.
+  run_next_test();
+}
+
+/**
+ * Test removing non watched path
+ */
+add_task(function* test_remove_not_watched() {
+  let nonExistingDir =
+    OS.Path.join(OS.Constants.Path.profileDir, "absolutelyNotExisting");
+
+  // Instantiate the native watcher.
+  let watcher = makeWatcher();
+
+  // Try to un-watch a path which wasn't being watched.
+  watcher.removePath(
+    nonExistingDir,
+    function(changed) {
+      do_throw("No change is expected in this test.");
+    },
+    function(xpcomError, osError) {
+      // When removing a resource which wasn't being watched, it should silently
+      // ignore the request.
+      do_throw("Unexpected exception: "
+               + xpcomError + " (XPCOM) "
+               + osError + " (OS Error)");
+    }
+  );
+});
--- a/toolkit/components/filewatcher/tests/xpcshell/test_shared_callback.js
+++ b/toolkit/components/filewatcher/tests/xpcshell/test_shared_callback.js
@@ -1,62 +1,62 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-function run_test() {
-  // Set up profile. We will use profile path create some test files.
-  do_get_profile();
-
-  // Start executing the tests.
-  run_next_test();
-}
-
-/**
- * Test the watcher correctly handles two watches sharing the same
- * change callback.
- */
-add_task(function* test_watch_with_shared_callback() {
-
-  // Create and watch two sub-directories of the profile directory so we don't
-  // catch notifications we're not interested in (i.e. "startupCache").
-  let watchedDirs =
-    [
-      OS.Path.join(OS.Constants.Path.profileDir, "filewatcher_playground"),
-      OS.Path.join(OS.Constants.Path.profileDir, "filewatcher_playground2")
-    ];
-
-  yield OS.File.makeDir(watchedDirs[0]);
-  yield OS.File.makeDir(watchedDirs[1]);
-
-  let tempFileName = "test_filecreation.tmp";
-
-  // Instantiate and initialize the native watcher.
-  let watcher = makeWatcher();
-  let deferred = Promise.defer();
-
-  // Watch both directories using the same callbacks.
-  yield promiseAddPath(watcher, watchedDirs[0], deferred.resolve, deferred.reject);
-  yield promiseAddPath(watcher, watchedDirs[1], deferred.resolve, deferred.reject);
-
-  // Remove the watch for the first directory, but keep watching
-  // for changes in the second: we need to make sure the callback
-  // survives the removal of the first watch.
-  watcher.removePath(watchedDirs[0], deferred.resolve, deferred.reject);
-
-  // Create a file within the watched directory.
-  let tmpFilePath = OS.Path.join(watchedDirs[1], tempFileName);
-  yield OS.File.writeAtomic(tmpFilePath, "some data");
-
-  // Wait until the watcher informs us that the file was created.
-  let changed = yield deferred.promise;
-  do_check_eq(changed, tmpFilePath);
-
-  // Remove the watch and free the associated memory (we need to
-  // reuse 'deferred.resolve' and 'deferred.reject' to unregister).
-  watcher.removePath(watchedDirs[1], deferred.resolve, deferred.reject);
-
-  // Remove the test directories and all of their content.
-  yield OS.File.removeDir(watchedDirs[0]);
-  yield OS.File.removeDir(watchedDirs[1]);
-});
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+function run_test() {
+  // Set up profile. We will use profile path create some test files.
+  do_get_profile();
+
+  // Start executing the tests.
+  run_next_test();
+}
+
+/**
+ * Test the watcher correctly handles two watches sharing the same
+ * change callback.
+ */
+add_task(function* test_watch_with_shared_callback() {
+
+  // Create and watch two sub-directories of the profile directory so we don't
+  // catch notifications we're not interested in (i.e. "startupCache").
+  let watchedDirs =
+    [
+      OS.Path.join(OS.Constants.Path.profileDir, "filewatcher_playground"),
+      OS.Path.join(OS.Constants.Path.profileDir, "filewatcher_playground2")
+    ];
+
+  yield OS.File.makeDir(watchedDirs[0]);
+  yield OS.File.makeDir(watchedDirs[1]);
+
+  let tempFileName = "test_filecreation.tmp";
+
+  // Instantiate and initialize the native watcher.
+  let watcher = makeWatcher();
+  let deferred = Promise.defer();
+
+  // Watch both directories using the same callbacks.
+  yield promiseAddPath(watcher, watchedDirs[0], deferred.resolve, deferred.reject);
+  yield promiseAddPath(watcher, watchedDirs[1], deferred.resolve, deferred.reject);
+
+  // Remove the watch for the first directory, but keep watching
+  // for changes in the second: we need to make sure the callback
+  // survives the removal of the first watch.
+  watcher.removePath(watchedDirs[0], deferred.resolve, deferred.reject);
+
+  // Create a file within the watched directory.
+  let tmpFilePath = OS.Path.join(watchedDirs[1], tempFileName);
+  yield OS.File.writeAtomic(tmpFilePath, "some data");
+
+  // Wait until the watcher informs us that the file was created.
+  let changed = yield deferred.promise;
+  do_check_eq(changed, tmpFilePath);
+
+  // Remove the watch and free the associated memory (we need to
+  // reuse 'deferred.resolve' and 'deferred.reject' to unregister).
+  watcher.removePath(watchedDirs[1], deferred.resolve, deferred.reject);
+
+  // Remove the test directories and all of their content.
+  yield OS.File.removeDir(watchedDirs[0]);
+  yield OS.File.removeDir(watchedDirs[1]);
+});
--- a/toolkit/components/filewatcher/tests/xpcshell/test_watch_directory_creation_single.js
+++ b/toolkit/components/filewatcher/tests/xpcshell/test_watch_directory_creation_single.js
@@ -1,49 +1,49 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-function run_test() {
-  // Set up profile. We will use profile path create some test files
-  do_get_profile();
-
-  // Start executing the tests
-  run_next_test();
-}
-
-/**
- * Tests that the watcher correctly notifies of a directory creation when watching
- * a single path.
- */
-add_task(function* test_watch_single_path_directory_creation() {
-
-  // Create and watch a sub-directory of the profile directory so we don't
-  // catch notifications we're not interested in (i.e. "startupCache").
-  let watchedDir = OS.Path.join(OS.Constants.Path.profileDir, "filewatcher_playground");
-  yield OS.File.makeDir(watchedDir);
-
-  let tmpDirPath = OS.Path.join(watchedDir, "testdir");
-
-  // Instantiate and initialize the native watcher.
-  let watcher = makeWatcher();
-  let deferred = Promise.defer();
-
-  // Add the profile directory to the watch list and wait for the file watcher
-  // to start watching.
-  yield promiseAddPath(watcher, watchedDir, deferred.resolve, deferred.reject);
-
-  // Once ready, create a directory within the watched directory.
-  yield OS.File.makeDir(tmpDirPath);
-
-  // Wait until the watcher informs us that the file has changed.
-  let changed = yield deferred.promise;
-  do_check_eq(changed, tmpDirPath);
-
-  // Remove the watch and free the associated memory (we need to
-  // reuse 'deferred.resolve' and 'deferred.reject' to unregister).
-  yield promiseRemovePath(watcher, watchedDir, deferred.resolve, deferred.reject);
-
-  // Clean up the test directory.
-  yield OS.File.removeDir(watchedDir);
-});
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+function run_test() {
+  // Set up profile. We will use profile path create some test files
+  do_get_profile();
+
+  // Start executing the tests
+  run_next_test();
+}
+
+/**
+ * Tests that the watcher correctly notifies of a directory creation when watching
+ * a single path.
+ */
+add_task(function* test_watch_single_path_directory_creation() {
+
+  // Create and watch a sub-directory of the profile directory so we don't
+  // catch notifications we're not interested in (i.e. "startupCache").
+  let watchedDir = OS.Path.join(OS.Constants.Path.profileDir, "filewatcher_playground");
+  yield OS.File.makeDir(watchedDir);
+
+  let tmpDirPath = OS.Path.join(watchedDir, "testdir");
+
+  // Instantiate and initialize the native watcher.
+  let watcher = makeWatcher();
+  let deferred = Promise.defer();
+
+  // Add the profile directory to the watch list and wait for the file watcher
+  // to start watching.
+  yield promiseAddPath(watcher, watchedDir, deferred.resolve, deferred.reject);
+
+  // Once ready, create a directory within the watched directory.
+  yield OS.File.makeDir(tmpDirPath);
+
+  // Wait until the watcher informs us that the file has changed.
+  let changed = yield deferred.promise;
+  do_check_eq(changed, tmpDirPath);
+
+  // Remove the watch and free the associated memory (we need to
+  // reuse 'deferred.resolve' and 'deferred.reject' to unregister).
+  yield promiseRemovePath(watcher, watchedDir, deferred.resolve, deferred.reject);
+
+  // Clean up the test directory.
+  yield OS.File.removeDir(watchedDir);
+});
--- a/toolkit/components/filewatcher/tests/xpcshell/test_watch_directory_deletion_single.js
+++ b/toolkit/components/filewatcher/tests/xpcshell/test_watch_directory_deletion_single.js
@@ -1,46 +1,46 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-function run_test() {
-  // Set up profile. We will use profile path create some test files.
-  do_get_profile();
-
-  // Start executing the tests.
-  run_next_test();
-}
-
-/**
- * Tests that the watcher correctly notifies of a directory deletion when watching
- * a single path.
- */
-add_task(function* test_watch_single_path_directory_deletion() {
-
-  let watchedDir = OS.Constants.Path.profileDir;
-  let tempDirName = "test";
-  let tmpDirPath = OS.Path.join(watchedDir, tempDirName);
-
-  // Instantiate and initialize the native watcher.
-  let watcher = makeWatcher();
-  let deferred = Promise.defer();
-
-  // Create a directory within the watched directory.
-  yield OS.File.makeDir(tmpDirPath);
-
-  // Add the profile directory to the watch list and wait for the file watcher
-  // to start watching it.
-  yield promiseAddPath(watcher, watchedDir, deferred.resolve, deferred.reject);
-
-  // Remove the directory.
-  OS.File.removeDir(tmpDirPath);
-
-  // Wait until the watcher informs us that the file has changed.
-  let changed = yield deferred.promise;
-  do_check_eq(changed, tmpDirPath);
-
-  // Remove the watch and free the associated memory (we need to
-  // reuse 'deferred.resolve' and 'deferred.reject' to unregister).
-  yield promiseRemovePath(watcher, watchedDir, deferred.resolve, deferred.reject);
-});
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+function run_test() {
+  // Set up profile. We will use profile path create some test files.
+  do_get_profile();
+
+  // Start executing the tests.
+  run_next_test();
+}
+
+/**
+ * Tests that the watcher correctly notifies of a directory deletion when watching
+ * a single path.
+ */
+add_task(function* test_watch_single_path_directory_deletion() {
+
+  let watchedDir = OS.Constants.Path.profileDir;
+  let tempDirName = "test";
+  let tmpDirPath = OS.Path.join(watchedDir, tempDirName);
+
+  // Instantiate and initialize the native watcher.
+  let watcher = makeWatcher();
+  let deferred = Promise.defer();
+
+  // Create a directory within the watched directory.
+  yield OS.File.makeDir(tmpDirPath);
+
+  // Add the profile directory to the watch list and wait for the file watcher
+  // to start watching it.
+  yield promiseAddPath(watcher, watchedDir, deferred.resolve, deferred.reject);
+
+  // Remove the directory.
+  OS.File.removeDir(tmpDirPath);
+
+  // Wait until the watcher informs us that the file has changed.
+  let changed = yield deferred.promise;
+  do_check_eq(changed, tmpDirPath);
+
+  // Remove the watch and free the associated memory (we need to
+  // reuse 'deferred.resolve' and 'deferred.reject' to unregister).
+  yield promiseRemovePath(watcher, watchedDir, deferred.resolve, deferred.reject);
+});
--- a/toolkit/components/filewatcher/tests/xpcshell/test_watch_file_creation_single.js
+++ b/toolkit/components/filewatcher/tests/xpcshell/test_watch_file_creation_single.js
@@ -1,51 +1,51 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-function run_test() {
-  // Set up profile. We will use profile path create some test files.
-  do_get_profile();
-
-  // Start executing the tests.
-  run_next_test();
-}
-
-/**
- * Test the watcher correctly notifies of a file creation when watching
- * a single path.
- */
-add_task(function* test_watch_single_path_file_creation() {
-
-  // Create and watch a sub-directory of the profile directory so we don't
-  // catch notifications we're not interested in (i.e. "startupCache").
-  let watchedDir = OS.Path.join(OS.Constants.Path.profileDir, "filewatcher_playground");
-  yield OS.File.makeDir(watchedDir);
-
-  let tempFileName = "test_filecreation.tmp";
-
-  // Instantiate and initialize the native watcher.
-  let watcher = makeWatcher();
-  let deferred = Promise.defer();
-
-  let tmpFilePath = OS.Path.join(watchedDir, tempFileName);
-
-  // Add the profile directory to the watch list and wait for the file watcher
-  // to start watching.
-  yield promiseAddPath(watcher, watchedDir, deferred.resolve, deferred.reject);
-
-  // create the file within the watched directory.
-  yield OS.File.writeAtomic(tmpFilePath, "some data");
-
-  // Wait until the watcher informs us that the file was created.
-  let changed = yield deferred.promise;
-  do_check_eq(changed, tmpFilePath);
-
-  // Remove the watch and free the associated memory (we need to
-  // reuse 'deferred.resolve' and 'deferred.reject' to unregister).
-  yield promiseRemovePath(watcher, watchedDir, deferred.resolve, deferred.reject);
-
-  // Remove the test directory and all of its content.
-  yield OS.File.removeDir(watchedDir);
-});
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+function run_test() {
+  // Set up profile. We will use profile path create some test files.
+  do_get_profile();
+
+  // Start executing the tests.
+  run_next_test();
+}
+
+/**
+ * Test the watcher correctly notifies of a file creation when watching
+ * a single path.
+ */
+add_task(function* test_watch_single_path_file_creation() {
+
+  // Create and watch a sub-directory of the profile directory so we don't
+  // catch notifications we're not interested in (i.e. "startupCache").
+  let watchedDir = OS.Path.join(OS.Constants.Path.profileDir, "filewatcher_playground");
+  yield OS.File.makeDir(watchedDir);
+
+  let tempFileName = "test_filecreation.tmp";
+
+  // Instantiate and initialize the native watcher.
+  let watcher = makeWatcher();
+  let deferred = Promise.defer();
+
+  let tmpFilePath = OS.Path.join(watchedDir, tempFileName);
+
+  // Add the profile directory to the watch list and wait for the file watcher
+  // to start watching.
+  yield promiseAddPath(watcher, watchedDir, deferred.resolve, deferred.reject);
+
+  // create the file within the watched directory.
+  yield OS.File.writeAtomic(tmpFilePath, "some data");
+
+  // Wait until the watcher informs us that the file was created.
+  let changed = yield deferred.promise;
+  do_check_eq(changed, tmpFilePath);
+
+  // Remove the watch and free the associated memory (we need to
+  // reuse 'deferred.resolve' and 'deferred.reject' to unregister).
+  yield promiseRemovePath(watcher, watchedDir, deferred.resolve, deferred.reject);
+
+  // Remove the test directory and all of its content.
+  yield OS.File.removeDir(watchedDir);
+});
--- a/toolkit/components/filewatcher/tests/xpcshell/test_watch_file_deletion_single.js
+++ b/toolkit/components/filewatcher/tests/xpcshell/test_watch_file_deletion_single.js
@@ -1,54 +1,54 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-function run_test() {
-  // Set up profile. We will use profile path create some test files.
-  do_get_profile();
-
-  // Start executing the tests.
-  run_next_test();
-}
-/**
- * Test the watcher correctly notifies of a file deletion when watching
- * a single path.
- */
-add_task(function* test_watch_single_path_file_deletion() {
-
-  // Create and watch a sub-directory of the profile directory so we don't
-  // catch notifications we're not interested in (i.e. "startupCache").
-  let watchedDir = OS.Path.join(OS.Constants.Path.profileDir, "filewatcher_playground");
-  yield OS.File.makeDir(watchedDir);
-
-  let tempFileName = "test_filedeletion.tmp";
-
-  // Instantiate and initialize the native watcher.
-  let watcher = makeWatcher();
-  let deferred = Promise.defer();
-
-  // Create a file within the directory to be watched. We do this
-  // before watching the directory so we do not get the creation notification.
-  let tmpFilePath = OS.Path.join(watchedDir, tempFileName);
-  yield OS.File.writeAtomic(tmpFilePath, "some data");
-
-  // Add the profile directory to the watch list and wait for the file watcher
-  // to start watching it.
-  yield promiseAddPath(watcher, watchedDir, deferred.resolve, deferred.reject);
-
-  // Remove the file we created (should trigger a notification).
-  do_print('Removing ' + tmpFilePath);
-  yield OS.File.remove(tmpFilePath);
-
-  // Wait until the watcher informs us that the file was deleted.
-  let changed = yield deferred.promise;
-  do_check_eq(changed, tmpFilePath);
-
-  // Remove the watch and free the associated memory (we need to
-  // reuse 'deferred.resolve' and 'deferred.reject' to unregister).
-  yield promiseRemovePath(watcher, watchedDir, deferred.resolve, deferred.reject);
-
-  // Remove the test directory and all of its content.
-  yield OS.File.removeDir(watchedDir);
-});
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+function run_test() {
+  // Set up profile. We will use profile path create some test files.
+  do_get_profile();
+
+  // Start executing the tests.
+  run_next_test();
+}
+/**
+ * Test the watcher correctly notifies of a file deletion when watching
+ * a single path.
+ */
+add_task(function* test_watch_single_path_file_deletion() {
+
+  // Create and watch a sub-directory of the profile directory so we don't
+  // catch notifications we're not interested in (i.e. "startupCache").
+  let watchedDir = OS.Path.join(OS.Constants.Path.profileDir, "filewatcher_playground");
+  yield OS.File.makeDir(watchedDir);
+
+  let tempFileName = "test_filedeletion.tmp";
+
+  // Instantiate and initialize the native watcher.
+  let watcher = makeWatcher();
+  let deferred = Promise.defer();
+
+  // Create a file within the directory to be watched. We do this
+  // before watching the directory so we do not get the creation notification.
+  let tmpFilePath = OS.Path.join(watchedDir, tempFileName);
+  yield OS.File.writeAtomic(tmpFilePath, "some data");
+
+  // Add the profile directory to the watch list and wait for the file watcher
+  // to start watching it.
+  yield promiseAddPath(watcher, watchedDir, deferred.resolve, deferred.reject);
+
+  // Remove the file we created (should trigger a notification).
+  do_print('Removing ' + tmpFilePath);
+  yield OS.File.remove(tmpFilePath);
+
+  // Wait until the watcher informs us that the file was deleted.
+  let changed = yield deferred.promise;
+  do_check_eq(changed, tmpFilePath);
+
+  // Remove the watch and free the associated memory (we need to
+  // reuse 'deferred.resolve' and 'deferred.reject' to unregister).
+  yield promiseRemovePath(watcher, watchedDir, deferred.resolve, deferred.reject);
+
+  // Remove the test directory and all of its content.
+  yield OS.File.removeDir(watchedDir);
+});
--- a/toolkit/components/filewatcher/tests/xpcshell/test_watch_file_modification_single.js
+++ b/toolkit/components/filewatcher/tests/xpcshell/test_watch_file_modification_single.js
@@ -1,54 +1,54 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-function run_test() {
-  // Set up profile. We will use profile path create some test files
-  do_get_profile();
-
-  // Start executing the tests
-  run_next_test();
-}
-
-/**
- * Tests that the watcher correctly notifies of a file modification when watching
- * a single path.
- */
-add_task(function* test_watch_single_path_file_modification() {
-
-  // Create and watch a sub-directory of the profile directory so we don't
-  // catch notifications we're not interested in (i.e. "startupCache").
-  let watchedDir = OS.Path.join(OS.Constants.Path.profileDir, "filewatcher_playground");
-  yield OS.File.makeDir(watchedDir);
-
-  let tempFileName = "test_filemodification.tmp";
-
-  // Instantiate and initialize the native watcher.
-  let watcher = makeWatcher();
-  let deferred = Promise.defer();
-
-  // Create a file within the directory to be watched. We do this
-  // before watching the directory so we do not get the creation notification.
-  let tmpFilePath = OS.Path.join(watchedDir, tempFileName);
-  yield OS.File.writeAtomic(tmpFilePath, "some data");
-
-  // Add the profile directory to the watch list and wait for the file watcher
-  // to start watching it.
-  yield promiseAddPath(watcher, watchedDir, deferred.resolve, deferred.reject);
-
-  // Once ready, modify the file to trigger the notification.
-  yield OS.File.writeAtomic(tmpFilePath, "some new data");
-
-  // Wait until the watcher informs us that the file has changed.
-  let changed = yield deferred.promise;
-  do_check_eq(changed, tmpFilePath);
-
-  // Remove the watch and free the associated memory (we need to
-  // reuse 'deferred.resolve' and 'deferred.reject' to unregister).
-  yield promiseRemovePath(watcher, watchedDir, deferred.resolve, deferred.reject);
-
-  // Remove the test directory and all of its content.
-  yield OS.File.removeDir(watchedDir);
-});
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+function run_test() {
+  // Set up profile. We will use profile path create some test files
+  do_get_profile();
+
+  // Start executing the tests
+  run_next_test();
+}
+
+/**
+ * Tests that the watcher correctly notifies of a file modification when watching
+ * a single path.
+ */
+add_task(function* test_watch_single_path_file_modification() {
+
+  // Create and watch a sub-directory of the profile directory so we don't
+  // catch notifications we're not interested in (i.e. "startupCache").
+  let watchedDir = OS.Path.join(OS.Constants.Path.profileDir, "filewatcher_playground");
+  yield OS.File.makeDir(watchedDir);
+
+  let tempFileName = "test_filemodification.tmp";
+
+  // Instantiate and initialize the native watcher.
+  let watcher = makeWatcher();
+  let deferred = Promise.defer();
+
+  // Create a file within the directory to be watched. We do this
+  // before watching the directory so we do not get the creation notification.
+  let tmpFilePath = OS.Path.join(watchedDir, tempFileName);
+  yield OS.File.writeAtomic(tmpFilePath, "some data");
+
+  // Add the profile directory to the watch list and wait for the file watcher
+  // to start watching it.
+  yield promiseAddPath(watcher, watchedDir, deferred.resolve, deferred.reject);
+
+  // Once ready, modify the file to trigger the notification.
+  yield OS.File.writeAtomic(tmpFilePath, "some new data");
+
+  // Wait until the watcher informs us that the file has changed.
+  let changed = yield deferred.promise;
+  do_check_eq(changed, tmpFilePath);
+
+  // Remove the watch and free the associated memory (we need to
+  // reuse 'deferred.resolve' and 'deferred.reject' to unregister).
+  yield promiseRemovePath(watcher, watchedDir, deferred.resolve, deferred.reject);
+
+  // Remove the test directory and all of its content.
+  yield OS.File.removeDir(watchedDir);
+});
--- a/toolkit/components/filewatcher/tests/xpcshell/test_watch_many_changes.js
+++ b/toolkit/components/filewatcher/tests/xpcshell/test_watch_many_changes.js
@@ -1,73 +1,73 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-function run_test() {
-  // Set up profile. We will use profile path create some test files
-  do_get_profile();
-
-  // Start executing the tests
-  run_next_test();
-}
-
-/**
- * Test that we correctly handle watching directories when hundreds of files
- * change simultaneously.
- */
-add_task(function* test_fill_notification_buffer() {
-
-  // Create and watch a sub-directory of the profile directory so we don't
-  // catch notifications we're not interested in (i.e. "startupCache").
-  let watchedDir = OS.Path.join(OS.Constants.Path.profileDir, "filewatcher_playground");
-  yield OS.File.makeDir(watchedDir);
-
-  // The number of files to create.
-  let numberOfFiles = 100;
-  let fileNameBase = "testFile";
-
-  // This will be used to keep track of the number of changes within the watched
-  // directory.
-  let detectedChanges = 0;
-
-  // We expect at least the following notifications for each file:
-  //  - File creation
-  //  - File deletion
-  let expectedChanges = numberOfFiles * 2;
-
-  // Instantiate the native watcher.
-  let watcher = makeWatcher();
-  let deferred = Promise.defer();
-
-  // Initialise the change callback.
-  let changeCallback = function(changed) {
-      do_print(changed + " has changed.");
-
-      detectedChanges += 1;
-
-      // Resolve the promise if we get all the expected changes.
-      if (detectedChanges >= expectedChanges) {
-        deferred.resolve();
-      }
-    };
-
-  // Add the profile directory to the watch list and wait for the file watcher
-  // to start watching it.
-  yield promiseAddPath(watcher, watchedDir, changeCallback, deferred.reject);
-
-  // Create and then remove the files within the watched directory.
-  for (let i = 0; i < numberOfFiles; i++) {
-    let tmpFilePath = OS.Path.join(watchedDir, fileNameBase + i);
-    yield OS.File.writeAtomic(tmpFilePath, "test content");
-    yield OS.File.remove(tmpFilePath);
-  }
-
-  // Wait until the watcher informs us that all the files were
-  // created, modified and removed.
-  yield deferred.promise;
-
-  // Remove the watch and free the associated memory (we need to
-  // reuse 'changeCallback' and 'errorCallback' to unregister).
-  yield promiseRemovePath(watcher, watchedDir, changeCallback, deferred.reject);
-});
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+function run_test() {
+  // Set up profile. We will use profile path create some test files
+  do_get_profile();
+
+  // Start executing the tests
+  run_next_test();
+}
+
+/**
+ * Test that we correctly handle watching directories when hundreds of files
+ * change simultaneously.
+ */
+add_task(function* test_fill_notification_buffer() {
+
+  // Create and watch a sub-directory of the profile directory so we don't
+  // catch notifications we're not interested in (i.e. "startupCache").
+  let watchedDir = OS.Path.join(OS.Constants.Path.profileDir, "filewatcher_playground");
+  yield OS.File.makeDir(watchedDir);
+
+  // The number of files to create.
+  let numberOfFiles = 100;
+  let fileNameBase = "testFile";
+
+  // This will be used to keep track of the number of changes within the watched
+  // directory.
+  let detectedChanges = 0;
+
+  // We expect at least the following notifications for each file:
+  //  - File creation
+  //  - File deletion
+  let expectedChanges = numberOfFiles * 2;
+
+  // Instantiate the native watcher.
+  let watcher = makeWatcher();
+  let deferred = Promise.defer();
+
+  // Initialise the change callback.
+  let changeCallback = function(changed) {
+      do_print(changed + " has changed.");
+
+      detectedChanges += 1;
+
+      // Resolve the promise if we get all the expected changes.
+      if (detectedChanges >= expectedChanges) {
+        deferred.resolve();
+      }
+    };
+
+  // Add the profile directory to the watch list and wait for the file watcher
+  // to start watching it.
+  yield promiseAddPath(watcher, watchedDir, changeCallback, deferred.reject);
+
+  // Create and then remove the files within the watched directory.
+  for (let i = 0; i < numberOfFiles; i++) {
+    let tmpFilePath = OS.Path.join(watchedDir, fileNameBase + i);
+    yield OS.File.writeAtomic(tmpFilePath, "test content");
+    yield OS.File.remove(tmpFilePath);
+  }
+
+  // Wait until the watcher informs us that all the files were
+  // created, modified and removed.
+  yield deferred.promise;
+
+  // Remove the watch and free the associated memory (we need to
+  // reuse 'changeCallback' and 'errorCallback' to unregister).
+  yield promiseRemovePath(watcher, watchedDir, changeCallback, deferred.reject);
+});
--- a/toolkit/components/filewatcher/tests/xpcshell/test_watch_multi_paths.js
+++ b/toolkit/components/filewatcher/tests/xpcshell/test_watch_multi_paths.js
@@ -1,114 +1,114 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-function run_test() {
-  // Set up profile. We will use profile path create some test files
-  do_get_profile();
-
-  // Start executing the tests
-  run_next_test();
-}
-
-/**
- * Tests the watcher by watching several resources.
- * This test creates the specified number of directory inside the profile
- * directory, adds each one of them to the watched list the creates
- * a file in them in order to trigger the notification.
- * The test keeps track of the number of times the changes callback is
- * called in order to verify the success of the test.
- */
-add_task(function* test_watch_multi_paths() {
-
-  // The number of resources to watch. We expect changes for
-  // creating a file within each directory.
-  let resourcesToWatch = 5;
-  let watchedDir = OS.Constants.Path.profileDir;
-
-  // The directories to be watched will be created with.
-  let tempDirNameBase = "FileWatcher_Test_";
-  let tempFileName = "test.tmp";
-
-  // Instantiate the native watcher.
-  let watcher = makeWatcher();
-
-  // This will be used to keep track of the number of changes within the watched
-  // resources.
-  let detectedChanges = 0;
-  let watchedResources = 0;
-  let unwatchedResources = 0;
-
-  let deferredChanges = Promise.defer();
-  let deferredSuccesses = Promise.defer();
-  let deferredShutdown = Promise.defer();
-
-  // Define the change callback function.
-  let changeCallback = function(changed) {
-      do_print(changed + " has changed.");
-
-      detectedChanges += 1;
-
-      // Resolve the promise if we get all the expected changes.
-      if (detectedChanges === resourcesToWatch) {
-        deferredChanges.resolve();
-      }
-    };
-
-  // Define the watch success callback function.
-  let watchSuccessCallback = function(resourcePath) {
-      do_print(resourcePath + " is being watched.");
-
-      watchedResources += 1;
-
-      // Resolve the promise when all the resources are being
-      // watched.
-      if (watchedResources === resourcesToWatch) {
-        deferredSuccesses.resolve();
-      }
-    };
-
-  // Define the watch success callback function.
-  let unwatchSuccessCallback = function(resourcePath) {
-      do_print(resourcePath + " is being un-watched.");
-
-      unwatchedResources += 1;
-
-      // Resolve the promise when all the resources are being
-      // watched.
-      if (unwatchedResources === resourcesToWatch) {
-        deferredShutdown.resolve();
-      }
-    };
-
-  // Create the directories and add them to the watched resources list.
-  for (let i = 0; i < resourcesToWatch; i++) {
-    let tmpSubDirPath = OS.Path.join(watchedDir, tempDirNameBase + i);
-    do_print("Creating the " + tmpSubDirPath + " directory.");
-    yield OS.File.makeDir(tmpSubDirPath);
-    watcher.addPath(tmpSubDirPath, changeCallback, deferredChanges.reject, watchSuccessCallback);
-  }
-
-  // Wait until the watcher informs us that all the desired resources
-  // are being watched.
-  yield deferredSuccesses.promise;
-
-  // Create a file within each watched directory.
-  for (let i = 0; i < resourcesToWatch; i++) {
-    let tmpFilePath = OS.Path.join(watchedDir, tempDirNameBase + i, tempFileName);
-    yield OS.File.writeAtomic(tmpFilePath, "test content");
-  }
-
-  // Wait until the watcher informs us that all the files were created.
-  yield deferredChanges.promise;
-
-  // Remove the directories we have created.
-  for (let i = 0; i < resourcesToWatch; i++) {
-    let tmpSubDirPath = OS.Path.join(watchedDir, tempDirNameBase + i);
-    watcher.removePath(tmpSubDirPath, changeCallback, deferredChanges.reject, unwatchSuccessCallback);
-  }
-
-  // Wait until the watcher un-watches the resources.
-  yield deferredShutdown.promise;
-});
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+function run_test() {
+  // Set up profile. We will use profile path create some test files
+  do_get_profile();
+
+  // Start executing the tests
+  run_next_test();
+}
+
+/**
+ * Tests the watcher by watching several resources.
+ * This test creates the specified number of directory inside the profile
+ * directory, adds each one of them to the watched list the creates
+ * a file in them in order to trigger the notification.
+ * The test keeps track of the number of times the changes callback is
+ * called in order to verify the success of the test.
+ */
+add_task(function* test_watch_multi_paths() {
+
+  // The number of resources to watch. We expect changes for
+  // creating a file within each directory.
+  let resourcesToWatch = 5;
+  let watchedDir = OS.Constants.Path.profileDir;
+
+  // The directories to be watched will be created with.
+  let tempDirNameBase = "FileWatcher_Test_";
+  let tempFileName = "test.tmp";
+
+  // Instantiate the native watcher.
+  let watcher = makeWatcher();
+
+  // This will be used to keep track of the number of changes within the watched
+  // resources.
+  let detectedChanges = 0;
+  let watchedResources = 0;
+  let unwatchedResources = 0;
+
+  let deferredChanges = Promise.defer();
+  let deferredSuccesses = Promise.defer();
+  let deferredShutdown = Promise.defer();
+
+  // Define the change callback function.
+  let changeCallback = function(changed) {
+      do_print(changed + " has changed.");
+
+      detectedChanges += 1;
+
+      // Resolve the promise if we get all the expected changes.
+      if (detectedChanges === resourcesToWatch) {
+        deferredChanges.resolve();
+      }
+    };
+
+  // Define the watch success callback function.
+  let watchSuccessCallback = function(resourcePath) {
+      do_print(resourcePath + " is being watched.");
+
+      watchedResources += 1;
+
+      // Resolve the promise when all the resources are being
+      // watched.
+      if (watchedResources === resourcesToWatch) {
+        deferredSuccesses.resolve();
+      }
+    };
+
+  // Define the watch success callback function.
+  let unwatchSuccessCallback = function(resourcePath) {
+      do_print(resourcePath + " is being un-watched.");
+
+      unwatchedResources += 1;
+
+      // Resolve the promise when all the resources are being
+      // watched.
+      if (unwatchedResources === resourcesToWatch) {
+        deferredShutdown.resolve();
+      }
+    };
+
+  // Create the directories and add them to the watched resources list.
+  for (let i = 0; i < resourcesToWatch; i++) {
+    let tmpSubDirPath = OS.Path.join(watchedDir, tempDirNameBase + i);
+    do_print("Creating the " + tmpSubDirPath + " directory.");
+    yield OS.File.makeDir(tmpSubDirPath);
+    watcher.addPath(tmpSubDirPath, changeCallback, deferredChanges.reject, watchSuccessCallback);
+  }
+
+  // Wait until the watcher informs us that all the desired resources
+  // are being watched.
+  yield deferredSuccesses.promise;
+
+  // Create a file within each watched directory.
+  for (let i = 0; i < resourcesToWatch; i++) {
+    let tmpFilePath = OS.Path.join(watchedDir, tempDirNameBase + i, tempFileName);
+    yield OS.File.writeAtomic(tmpFilePath, "test content");
+  }
+
+  // Wait until the watcher informs us that all the files were created.
+  yield deferredChanges.promise;
+
+  // Remove the directories we have created.
+  for (let i = 0; i < resourcesToWatch; i++) {
+    let tmpSubDirPath = OS.Path.join(watchedDir, tempDirNameBase + i);
+    watcher.removePath(tmpSubDirPath, changeCallback, deferredChanges.reject, unwatchSuccessCallback);
+  }
+
+  // Wait until the watcher un-watches the resources.
+  yield deferredShutdown.promise;
+});
--- a/toolkit/components/filewatcher/tests/xpcshell/test_watch_recursively.js
+++ b/toolkit/components/filewatcher/tests/xpcshell/test_watch_recursively.js
@@ -1,55 +1,55 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-function run_test() {
-  // Set up profile. We will use profile path create some test files.
-  do_get_profile();
-
-  // Start executing the tests.
-  run_next_test();
-}
-
-/**
- * Test the watcher correctly notifies of a file creation in a subdirectory
- * of the watched sub-directory (recursion).
- */
-add_task(function* test_watch_recursively() {
-
-  // Create and watch a sub-directory of the profile directory so we don't
-  // catch notifications we're not interested in (i.e. "startupCache").
-  let watchedDir = OS.Path.join(OS.Constants.Path.profileDir, "filewatcher_playground");
-  yield OS.File.makeDir(watchedDir);
-
-  // We need at least 2 levels of directories to test recursion.
-  let subdirectory = OS.Path.join(watchedDir, "level1");
-  yield OS.File.makeDir(subdirectory);
-
-  let tempFileName = "test_filecreation.tmp";
-
-  // Instantiate and initialize the native watcher.
-  let watcher = makeWatcher();
-  let deferred = Promise.defer();
-
-  let tmpFilePath = OS.Path.join(subdirectory, tempFileName);
-
-  // Add the profile directory to the watch list and wait for the file watcher
-  // to start watching it.
-  yield promiseAddPath(watcher, watchedDir, deferred.resolve, deferred.reject);
-
-  // Create a file within the subdirectory of the watched directory.
-  yield OS.File.writeAtomic(tmpFilePath, "some data");
-
-  // Wait until the watcher informs us that the file was created.
-  let changed = yield deferred.promise;
-  do_check_eq(changed, tmpFilePath);
-
-  // Remove the watch and free the associated memory (we need to
-  // reuse 'deferred.resolve' and 'deferred.reject' to unregister).
-  yield promiseRemovePath(watcher, watchedDir, deferred.resolve, deferred.reject);
-
-  // Remove the test directory and all of its content.
-  yield OS.File.removeDir(watchedDir);
-});
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+function run_test() {
+  // Set up profile. We will use profile path create some test files.
+  do_get_profile();
+
+  // Start executing the tests.
+  run_next_test();
+}
+
+/**
+ * Test the watcher correctly notifies of a file creation in a subdirectory
+ * of the watched sub-directory (recursion).
+ */
+add_task(function* test_watch_recursively() {
+
+  // Create and watch a sub-directory of the profile directory so we don't
+  // catch notifications we're not interested in (i.e. "startupCache").
+  let watchedDir = OS.Path.join(OS.Constants.Path.profileDir, "filewatcher_playground");
+  yield OS.File.makeDir(watchedDir);
+
+  // We need at least 2 levels of directories to test recursion.
+  let subdirectory = OS.Path.join(watchedDir, "level1");
+  yield OS.File.makeDir(subdirectory);
+
+  let tempFileName = "test_filecreation.tmp";
+
+  // Instantiate and initialize the native watcher.
+  let watcher = makeWatcher();
+  let deferred = Promise.defer();
+
+  let tmpFilePath = OS.Path.join(subdirectory, tempFileName);
+
+  // Add the profile directory to the watch list and wait for the file watcher
+  // to start watching it.
+  yield promiseAddPath(watcher, watchedDir, deferred.resolve, deferred.reject);
+
+  // Create a file within the subdirectory of the watched directory.
+  yield OS.File.writeAtomic(tmpFilePath, "some data");
+
+  // Wait until the watcher informs us that the file was created.
+  let changed = yield deferred.promise;
+  do_check_eq(changed, tmpFilePath);
+
+  // Remove the watch and free the associated memory (we need to
+  // reuse 'deferred.resolve' and 'deferred.reject' to unregister).
+  yield promiseRemovePath(watcher, watchedDir, deferred.resolve, deferred.reject);
+
+  // Remove the test directory and all of its content.
+  yield OS.File.removeDir(watchedDir);
+});
--- a/toolkit/components/filewatcher/tests/xpcshell/test_watch_resource.js
+++ b/toolkit/components/filewatcher/tests/xpcshell/test_watch_resource.js
@@ -1,32 +1,32 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-function run_test() {
-  // Set up profile. We will use profile path create some test files
-  do_get_profile();
-
-  // Start executing the tests
-  run_next_test();
-}
-
-/**
- * Test watching non-existing path
- */
-add_task(function* test_watching_non_existing() {
-  let notExistingDir =
-    OS.Path.join(OS.Constants.Path.profileDir, "absolutelyNotExisting");
-
-  // Instantiate the native watcher.
-  let watcher = makeWatcher();
-  let deferred = Promise.defer();
-
-  // Try watch a path which doesn't exist.
-  watcher.addPath(notExistingDir, deferred.reject, deferred.resolve);
-
-  // Wait until the watcher informs us that there was an error.
-  let error = yield deferred.promise;
-  do_check_eq(error, Components.results.NS_ERROR_FILE_NOT_FOUND);
-});
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+function run_test() {
+  // Set up profile. We will use profile path create some test files
+  do_get_profile();
+
+  // Start executing the tests
+  run_next_test();
+}
+
+/**
+ * Test watching non-existing path
+ */
+add_task(function* test_watching_non_existing() {
+  let notExistingDir =
+    OS.Path.join(OS.Constants.Path.profileDir, "absolutelyNotExisting");
+
+  // Instantiate the native watcher.
+  let watcher = makeWatcher();
+  let deferred = Promise.defer();
+
+  // Try watch a path which doesn't exist.
+  watcher.addPath(notExistingDir, deferred.reject, deferred.resolve);
+
+  // Wait until the watcher informs us that there was an error.
+  let error = yield deferred.promise;
+  do_check_eq(error, Components.results.NS_ERROR_FILE_NOT_FOUND);
+});
--- a/toolkit/components/microformats/test/interface-tests/index.html
+++ b/toolkit/components/microformats/test/interface-tests/index.html
@@ -1,68 +1,68 @@
-<html><head><title>Mocha</title>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<link rel="stylesheet" href="../static/css/mocha.css" />
-<script src="../static/javascript/chai.js"></script>
-<script src="../static/javascript/mocha.js"></script>
-<link rel="stylesheet" href="../static/css/mocha-custom.css" />
-
-<script src="../static/javascript/DOMParser.js"></script>
-
-<script data-cover src="../../microformat-shiv.js"></script>
-
-<script>
-var uncaughtError;
-
-window.addEventListener("error", function(error) {
-uncaughtError = error;
-});
-
-var consoleWarn = console.warn;
-var caughtWarnings = [];
-
-console.warn = function() {
-var args = Array.slice(arguments);
-caughtWarnings.push(args);
-consoleWarn.apply(console, args);
-};
-</script>
-
-<script>
-chai.config.includeStack = true;
-mocha.setup({ui: 'bdd', timeout: 10000});
-</script>
-
-
-<script src="../interface-tests/get-test.js"></script>
-<script src="../interface-tests/getParent-test.js"></script>
-<script src="../interface-tests/count-test.js"></script>
-<script src="../interface-tests/isMicroformat-test.js"></script>
-<script src="../interface-tests/hasMicroformats-test.js"></script>
-
-<script src="../interface-tests/experimental-test.js"></script>
-
-</head><body>
-<h3 class="capitalize">Microformats-shiv: interface tests</h3>
-<div id="mocha"></div>
-</body>
-<script>
-describe("Uncaught Error Check", function() {
-it("should load the tests without errors", function() {
-chai.expect(uncaughtError && uncaughtError.message).to.be.undefined;
-});
-});
-
-describe("Unexpected Warnings Check", function() {
-it("should long only the warnings we expect", function() {
-chai.expect(caughtWarnings.length).to.eql(0);
-});
-});
-
-mocha.run(function () {
-var completeNode = document.createElement("p");
-completeNode.setAttribute("id", "complete");
-completeNode.appendChild(document.createTextNode("Complete"));
-document.getElementById("mocha").appendChild(completeNode);
-});
-
-</script>
-</body></html>
+<html><head><title>Mocha</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" href="../static/css/mocha.css" />
+<script src="../static/javascript/chai.js"></script>
+<script src="../static/javascript/mocha.js"></script>
+<link rel="stylesheet" href="../static/css/mocha-custom.css" />
+
+<script src="../static/javascript/DOMParser.js"></script>
+
+<script data-cover src="../../microformat-shiv.js"></script>
+
+<script>
+var uncaughtError;
+
+window.addEventListener("error", function(error) {
+uncaughtError = error;
+});
+
+var consoleWarn = console.warn;
+var caughtWarnings = [];
+
+console.warn = function() {
+var args = Array.slice(arguments);
+caughtWarnings.push(args);
+consoleWarn.apply(console, args);
+};
+</script>
+
+<script>
+chai.config.includeStack = true;
+mocha.setup({ui: 'bdd', timeout: 10000});
+</script>
+
+
+<script src="../interface-tests/get-test.js"></script>
+<script src="../interface-tests/getParent-test.js"></script>
+<script src="../interface-tests/count-test.js"></script>
+<script src="../interface-tests/isMicroformat-test.js"></script>
+<script src="../interface-tests/hasMicroformats-test.js"></script>
+
+<script src="../interface-tests/experimental-test.js"></script>
+
+</head><body>
+<h3 class="capitalize">Microformats-shiv: interface tests</h3>
+<div id="mocha"></div>
+</body>
+<script>
+describe("Uncaught Error Check", function() {
+it("should load the tests without errors", function() {
+chai.expect(uncaughtError && uncaughtError.message).to.be.undefined;
+});
+});
+
+describe("Unexpected Warnings Check", function() {
+it("should long only the warnings we expect", function() {
+chai.expect(caughtWarnings.length).to.eql(0);
+});
+});
+
+mocha.run(function () {
+var completeNode = document.createElement("p");
+completeNode.setAttribute("id", "complete");
+completeNode.appendChild(document.createTextNode("Complete"));
+document.getElementById("mocha").appendChild(completeNode);
+});
+
+</script>
+</body></html>
--- a/toolkit/components/microformats/test/module-tests/index.html
+++ b/toolkit/components/microformats/test/module-tests/index.html
@@ -1,76 +1,76 @@
-<html><head><title>Mocha</title>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<link rel="stylesheet" href="../static/css/mocha.css" />
-<script src="../static/javascript/chai.js"></script>
-<script src="../static/javascript/mocha.js"></script>
-<link rel="stylesheet" href="../static/css/mocha-custom.css" />
-
-<script src="../static/javascript/DOMParser.js"></script>
-
-<script data-cover src="../lib/utilities.js"></script>
-<script data-cover src="../lib/domutils.js"></script>
-<script data-cover src="../lib/url.js"></script>
-<script data-cover src="../lib/html.js"></script>
-<script data-cover src="../lib/text.js"></script>
-<script data-cover src="../lib/dates.js"></script>
-<script data-cover src="../lib/isodate.js"></script>
-
-<script>
-var uncaughtError;
-
-window.addEventListener("error", function(error) {
-uncaughtError = error;
-});
-
-var consoleWarn = console.warn;
-var caughtWarnings = [];
-
-console.warn = function() {
-var args = Array.slice(arguments);
-caughtWarnings.push(args);
-consoleWarn.apply(console, args);
-};
-</script>
-
-<script>
-chai.config.includeStack = true;
-mocha.setup({ui: 'bdd', timeout: 10000});
-</script>
-
-
-<script src="../module-tests/dates-test.js"></script>
-<script src="../module-tests/domUtils-test.js"></script>
-<script src="../module-tests/html-test.js"></script>
-<script src="../module-tests/isodate-test.js"></script>
-<script src="../module-tests/text-test.js"></script>
-
-<script src="../module-tests/url-test.js"></script>
-
-<script src="../module-tests/utilities-test.js"></script>
-
-</head><body>
-<h3 class="capitalize">Microformats-shiv: module tests</h3>
-<div id="mocha"></div>
-</body>
-<script>
-describe("Uncaught Error Check", function() {
-it("should load the tests without errors", function() {
-chai.expect(uncaughtError && uncaughtError.message).to.be.undefined;
-});
-});
-
-describe("Unexpected Warnings Check", function() {
-it("should long only the warnings we expect", function() {
-chai.expect(caughtWarnings.length).to.eql(0);
-});
-});
-
-mocha.run(function () {
-var completeNode = document.createElement("p");
-completeNode.setAttribute("id", "complete");
-completeNode.appendChild(document.createTextNode("Complete"));
-document.getElementById("mocha").appendChild(completeNode);
-});
-
-</script>
-</body></html>
+<html><head><title>Mocha</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" href="../static/css/mocha.css" />
+<script src="../static/javascript/chai.js"></script>
+<script src="../static/javascript/mocha.js"></script>
+<link rel="stylesheet" href="../static/css/mocha-custom.css" />
+
+<script src="../static/javascript/DOMParser.js"></script>
+
+<script data-cover src="../lib/utilities.js"></script>
+<script data-cover src="../lib/domutils.js"></script>
+<script data-cover src="../lib/url.js"></script>
+<script data-cover src="../lib/html.js"></script>
+<script data-cover src="../lib/text.js"></script>
+<script data-cover src="../lib/dates.js"></script>
+<script data-cover src="../lib/isodate.js"></script>
+
+<script>
+var uncaughtError;
+
+window.addEventListener("error", function(error) {
+uncaughtError = error;
+});
+
+var consoleWarn = console.warn;
+var caughtWarnings = [];
+
+console.warn = function() {
+var args = Array.slice(arguments);
+caughtWarnings.push(args);
+consoleWarn.apply(console, args);
+};
+</script>
+
+<script>
+chai.config.includeStack = true;
+mocha.setup({ui: 'bdd', timeout: 10000});
+</script>
+
+
+<script src="../module-tests/dates-test.js"></script>
+<script src="../module-tests/domUtils-test.js"></script>
+<script src="../module-tests/html-test.js"></script>
+<script src="../module-tests/isodate-test.js"></script>
+<script src="../module-tests/text-test.js"></script>
+
+<script src="../module-tests/url-test.js"></script>
+
+<script src="../module-tests/utilities-test.js"></script>
+
+</head><body>
+<h3 class="capitalize">Microformats-shiv: module tests</h3>
+<div id="mocha"></div>
+</body>
+<script>
+describe("Uncaught Error Check", function() {
+it("should load the tests without errors", function() {
+chai.expect(uncaughtError && uncaughtError.message).to.be.undefined;
+});
+});
+
+describe("Unexpected Warnings Check", function() {
+it("should long only the warnings we expect", function() {
+chai.expect(caughtWarnings.length).to.eql(0);
+});
+});
+
+mocha.run(function () {
+var completeNode = document.createElement("p");
+completeNode.setAttribute("id", "complete");
+completeNode.appendChild(document.createTextNode("Complete"));
+document.getElementById("mocha").appendChild(completeNode);
+});
+
+</script>
+</body></html>
--- a/toolkit/components/microformats/test/standards-tests/index.html
+++ b/toolkit/components/microformats/test/standards-tests/index.html
@@ -1,178 +1,178 @@
-<html><head><title>Mocha</title>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<link rel="stylesheet" href="../static/css/mocha.css" />
-<script src="../static/javascript/chai.js"></script>
-<script src="../static/javascript/mocha.js"></script>
-<link rel="stylesheet" href="../static/css/mocha-custom.css" />
-
-<script src="../static/javascript/DOMParser.js"></script>
-
-<script data-cover src="../../microformat-shiv.js"></script>
-
-<script>
-var uncaughtError;
-
-window.addEventListener("error", function(error) {
-uncaughtError = error;
-});
-
-var consoleWarn = console.warn;
-var caughtWarnings = [];
-
-console.warn = function() {
-var args = Array.slice(arguments);
-caughtWarnings.push(args);
-consoleWarn.apply(console, args);
-};
-</script>
-
-<script>
-chai.config.includeStack = true;
-mocha.setup({ui: 'bdd', timeout: 10000});
-</script>
-
-<script src="../standards-tests/mf-mixed-h-card-mixedpropertries.js"></script>
-<script src="../standards-tests/mf-mixed-h-card-tworoots.js"></script>
-<script src="../standards-tests/mf-mixed-h-entry-mixedroots.js"></script>
-<script src="../standards-tests/mf-mixed-h-resume-mixedroots.js"></script>
-<script src="../standards-tests/mf-v1-adr-simpleproperties.js"></script>
-<script src="../standards-tests/mf-v1-geo-abbrpattern.js"></script>
-<script src="../standards-tests/mf-v1-geo-hidden.js"></script>
-<script src="../standards-tests/mf-v1-geo-simpleproperties.js"></script>
-<script src="../standards-tests/mf-v1-geo-valuetitleclass.js"></script>
-<script src="../standards-tests/mf-v1-hcalendar-ampm.js"></script>
-<script src="../standards-tests/mf-v1-hcalendar-attendees.js"></script>
-<script src="../standards-tests/mf-v1-hcalendar-combining.js"></script>
-<script src="../standards-tests/mf-v1-hcalendar-concatenate.js"></script>
-<script src="../standards-tests/mf-v1-hcalendar-time.js"></script>
-<script src="../standards-tests/mf-v1-hcard-email.js"></script>
-<script src="../standards-tests/mf-v1-hcard-format.js"></script>
-<script src="../standards-tests/mf-v1-hcard-hyperlinkedphoto.js"></script>
-<script src="../standards-tests/mf-v1-hcard-justahyperlink.js"></script>
-<script src="../standards-tests/mf-v1-hcard-justaname.js"></script>
-<script src="../standards-tests/mf-v1-hcard-multiple.js"></script>
-<script src="../standards-tests/mf-v1-hcard-name.js"></script>
-<script src="../standards-tests/mf-v1-hcard-single.js"></script>
-<script src="../standards-tests/mf-v1-hentry-summarycontent.js"></script>
-<script src="../standards-tests/mf-v1-hfeed-simple.js"></script>
-<script src="../standards-tests/mf-v1-hnews-all.js"></script>
-<script src="../standards-tests/mf-v1-hnews-minimum.js"></script>
-<script src="../standards-tests/mf-v1-hproduct-aggregate.js"></script>
-<script src="../standards-tests/mf-v1-hproduct-simpleproperties.js"></script>
-<script src="../standards-tests/mf-v1-hresume-affiliation.js"></script>
-<script src="../standards-tests/mf-v1-hresume-contact.js"></script>
-<script src="../standards-tests/mf-v1-hresume-education.js"></script>
-<script src="../standards-tests/mf-v1-hresume-skill.js"></script>
-<script src="../standards-tests/mf-v1-hresume-work.js"></script>
-<script src="../standards-tests/mf-v1-hreview-item.js"></script>
-<script src="../standards-tests/mf-v1-hreview-vcard.js"></script>
-<script src="../standards-tests/mf-v1-hreview-aggregate-hcard.js"></script>
-<script src="../standards-tests/mf-v1-hreview-aggregate-justahyperlink.js"></script>
-<script src="../standards-tests/mf-v1-hreview-aggregate-vevent.js"></script>
-<script src="../standards-tests/mf-v1-includes-hcarditemref.js"></script>
-<script src="../standards-tests/mf-v1-includes-heventitemref.js"></script>
-<script src="../standards-tests/mf-v1-includes-hyperlink.js"></script>
-<script src="../standards-tests/mf-v1-includes-object.js"></script>
-<script src="../standards-tests/mf-v1-includes-table.js"></script>
-<script src="../standards-tests/mf-v2-h-adr-geo.js"></script>
-<script src="../standards-tests/mf-v2-h-adr-geourl.js"></script>
-<script src="../standards-tests/mf-v2-h-adr-justaname.js"></script>
-<script src="../standards-tests/mf-v2-h-adr-simpleproperties.js"></script>
-<script src="../standards-tests/mf-v2-h-as-note-note.js"></script>
-<script src="../standards-tests/mf-v2-h-card-baseurl.js"></script>
-<script src="../standards-tests/mf-v2-h-card-childimplied.js"></script>
-<script src="../standards-tests/mf-v2-h-card-extendeddescription.js"></script>
-<script src="../standards-tests/mf-v2-h-card-hcard.js"></script>
-<script src="../standards-tests/mf-v2-h-card-horghcard.js"></script>
-<script src="../standards-tests/mf-v2-h-card-hyperlinkedphoto.js"></script>
-<script src="../standards-tests/mf-v2-h-card-impliedname.js"></script>
-<script src="../standards-tests/mf-v2-h-card-impliedphoto.js"></script>
-<script src="../standards-tests/mf-v2-h-card-impliedurl.js"></script>
-<script src="../standards-tests/mf-v2-h-card-justahyperlink.js"></script>
-<script src="../standards-tests/mf-v2-h-card-justaname.js"></script>
-<script src="../standards-tests/mf-v2-h-card-nested.js"></script>
-<script src="../standards-tests/mf-v2-h-card-p-property.js"></script>
-<script src="../standards-tests/mf-v2-h-card-relativeurls.js"></script>
-<script src="../standards-tests/mf-v2-h-entry-impliedvalue-nested.js"></script>
-<script src="../standards-tests/mf-v2-h-entry-justahyperlink.js"></script>
-<script src="../standards-tests/mf-v2-h-entry-justaname.js"></script>
-<script src="../standards-tests/mf-v2-h-entry-summarycontent.js"></script>
-<script src="../standards-tests/mf-v2-h-entry-u-property.js"></script>
-<script src="../standards-tests/mf-v2-h-entry-urlincontent.js"></script>
-<script src="../standards-tests/mf-v2-h-event-ampm.js"></script>
-<script src="../standards-tests/mf-v2-h-event-attendees.js"></script>
-<script src="../standards-tests/mf-v2-h-event-combining.js"></script>
-<script src="../standards-tests/mf-v2-h-event-concatenate.js"></script>
-<script src="../standards-tests/mf-v2-h-event-dates.js"></script>
-<script src="../standards-tests/mf-v2-h-event-dt-property.js"></script>
-<script src="../standards-tests/mf-v2-h-event-justahyperlink.js"></script>
-<script src="../standards-tests/mf-v2-h-event-justaname.js"></script>
-<script src="../standards-tests/mf-v2-h-event-time.js"></script>
-<script src="../standards-tests/mf-v2-h-feed-implied-title.js"></script>
-<script src="../standards-tests/mf-v2-h-feed-simple.js"></script>
-<script src="../standards-tests/mf-v2-h-geo-abbrpattern.js"></script>
-<script src="../standards-tests/mf-v2-h-geo-altitude.js"></script>
-<script src="../standards-tests/mf-v2-h-geo-hidden.js"></script>
-<script src="../standards-tests/mf-v2-h-geo-justaname.js"></script>
-<script src="../standards-tests/mf-v2-h-geo-simpleproperties.js"></script>
-<script src="../standards-tests/mf-v2-h-geo-valuetitleclass.js"></script>
-<script src="../standards-tests/mf-v2-h-news-all.js"></script>
-<script src="../standards-tests/mf-v2-h-news-minimum.js"></script>
-<script src="../standards-tests/mf-v2-h-org-hyperlink.js"></script>
-<script src="../standards-tests/mf-v2-h-org-simple.js"></script>
-<script src="../standards-tests/mf-v2-h-org-simpleproperties.js"></script>
-<script src="../standards-tests/mf-v2-h-product-aggregate.js"></script>
-<script src="../standards-tests/mf-v2-h-product-justahyperlink.js"></script>
-<script src="../standards-tests/mf-v2-h-product-justaname.js"></script>
-<script src="../standards-tests/mf-v2-h-product-simpleproperties.js"></script>
-<script src="../standards-tests/mf-v2-h-recipe-all.js"></script>
-<script src="../standards-tests/mf-v2-h-recipe-minimum.js"></script>
-<script src="../standards-tests/mf-v2-h-resume-affiliation.js"></script>
-<script src="../standards-tests/mf-v2-h-resume-contact.js"></script>
-<script src="../standards-tests/mf-v2-h-resume-education.js"></script>
-<script src="../standards-tests/mf-v2-h-resume-justaname.js"></script>
-<script src="../standards-tests/mf-v2-h-resume-skill.js"></script>
-<script src="../standards-tests/mf-v2-h-resume-work.js"></script>
-<script src="../standards-tests/mf-v2-h-review-hyperlink.js"></script>
-<script src="../standards-tests/mf-v2-h-review-implieditem.js"></script>
-<script src="../standards-tests/mf-v2-h-review-item.js"></script>
-<script src="../standards-tests/mf-v2-h-review-justaname.js"></script>
-<script src="../standards-tests/mf-v2-h-review-photo.js"></script>
-<script src="../standards-tests/mf-v2-h-review-vcard.js"></script>
-<script src="../standards-tests/mf-v2-h-review-aggregate-hevent.js"></script>
-<script src="../standards-tests/mf-v2-h-review-aggregate-justahyperlink.js"></script>
-<script src="../standards-tests/mf-v2-h-review-aggregate-simpleproperties.js"></script>
-<script src="../standards-tests/mf-v2-rel-duplicate-rels.js"></script>
-<script src="../standards-tests/mf-v2-rel-license.js"></script>
-<script src="../standards-tests/mf-v2-rel-nofollow.js"></script>
-<script src="../standards-tests/mf-v2-rel-rel-urls.js"></script>
-<script src="../standards-tests/mf-v2-rel-varying-text-duplicate-rels.js"></script>
-<script src="../standards-tests/mf-v2-rel-xfn-all.js"></script>
-<script src="../standards-tests/mf-v2-rel-xfn-elsewhere.js"></script>
-</head><body>
-<h3 class="capitalize">Microformats-shiv: standards tests</h3>
-<p>Standards tests built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST). Downloaded from github repo: microformats/tests version v0.1.24</p>
-<div id="mocha"></div>
-</body>
-<script>
-describe("Uncaught Error Check", function() {
-it("should load the tests without errors", function() {
-chai.expect(uncaughtError && uncaughtError.message).to.be.undefined;
-});
-});
-
-describe("Unexpected Warnings Check", function() {
-it("should long only the warnings we expect", function() {
-chai.expect(caughtWarnings.length).to.eql(0);
-});
-});
-
-mocha.run(function () {
-var completeNode = document.createElement("p");
-completeNode.setAttribute("id", "complete");
-completeNode.appendChild(document.createTextNode("Complete"));
-document.getElementById("mocha").appendChild(completeNode);
-});
-
-</script>
-</body></html>
+<html><head><title>Mocha</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" href="../static/css/mocha.css" />
+<script src="../static/javascript/chai.js"></script>
+<script src="../static/javascript/mocha.js"></script>
+<link rel="stylesheet" href="../static/css/mocha-custom.css" />
+
+<script src="../static/javascript/DOMParser.js"></script>
+
+<script data-cover src="../../microformat-shiv.js"></script>
+
+<script>
+var uncaughtError;
+
+window.addEventListener("error", function(error) {
+uncaughtError = error;
+});
+
+var consoleWarn = console.warn;
+var caughtWarnings = [];
+
+console.warn = function() {
+var args = Array.slice(arguments);
+caughtWarnings.push(args);
+consoleWarn.apply(console, args);
+};
+</script>
+
+<script>
+chai.config.includeStack = true;
+mocha.setup({ui: 'bdd', timeout: 10000});
+</script>
+
+<script src="../standards-tests/mf-mixed-h-card-mixedpropertries.js"></script>
+<script src="../standards-tests/mf-mixed-h-card-tworoots.js"></script>
+<script src="../standards-tests/mf-mixed-h-entry-mixedroots.js"></script>
+<script src="../standards-tests/mf-mixed-h-resume-mixedroots.js"></script>
+<script src="../standards-tests/mf-v1-adr-simpleproperties.js"></script>
+<script src="../standards-tests/mf-v1-geo-abbrpattern.js"></script>
+<script src="../standards-tests/mf-v1-geo-hidden.js"></script>
+<script src="../standards-tests/mf-v1-geo-simpleproperties.js"></script>
+<script src="../standards-tests/mf-v1-geo-valuetitleclass.js"></script>
+<script src="../standards-tests/mf-v1-hcalendar-ampm.js"></script>
+<script src="../standards-tests/mf-v1-hcalendar-attendees.js"></script>
+<script src="../standards-tests/mf-v1-hcalendar-combining.js"></script>
+<script src="../standards-tests/mf-v1-hcalendar-concatenate.js"></script>
+<script src="../standards-tests/mf-v1-hcalendar-time.js"></script>
+<script src="../standards-tests/mf-v1-hcard-email.js"></script>
+<script src="../standards-tests/mf-v1-hcard-format.js"></script>
+<script src="../standards-tests/mf-v1-hcard-hyperlinkedphoto.js"></script>
+<script src="../standards-tests/mf-v1-hcard-justahyperlink.js"></script>
+<script src="../standards-tests/mf-v1-hcard-justaname.js"></script>
+<script src="../standards-tests/mf-v1-hcard-multiple.js"></script>
+<script src="../standards-tests/mf-v1-hcard-name.js"></script>
+<script src="../standards-tests/mf-v1-hcard-single.js"></script>
+<script src="../standards-tests/mf-v1-hentry-summarycontent.js"></script>
+<script src="../standards-tests/mf-v1-hfeed-simple.js"></script>
+<script src="../standards-tests/mf-v1-hnews-all.js"></script>
+<script src="../standards-tests/mf-v1-hnews-minimum.js"></script>
+<script src="../standards-tests/mf-v1-hproduct-aggregate.js"></script>
+<script src="../standards-tests/mf-v1-hproduct-simpleproperties.js"></script>
+<script src="../standards-tests/mf-v1-hresume-affiliation.js"></script>
+<script src="../standards-tests/mf-v1-hresume-contact.js"></script>
+<script src="../standards-tests/mf-v1-hresume-education.js"></script>
+<script src="../standards-tests/mf-v1-hresume-skill.js"></script>
+<script src="../standards-tests/mf-v1-hresume-work.js"></script>
+<script src="../standards-tests/mf-v1-hreview-item.js"></script>
+<script src="../standards-tests/mf-v1-hreview-vcard.js"></script>
+<script src="../standards-tests/mf-v1-hreview-aggregate-hcard.js"></script>
+<script src="../standards-tests/mf-v1-hreview-aggregate-justahyperlink.js"></script>
+<script src="../standards-tests/mf-v1-hreview-aggregate-vevent.js"></script>
+<script src="../standards-tests/mf-v1-includes-hcarditemref.js"></script>
+<script src="../standards-tests/mf-v1-includes-heventitemref.js"></script>
+<script src="../standards-tests/mf-v1-includes-hyperlink.js"></script>
+<script src="../standards-tests/mf-v1-includes-object.js"></script>
+<script src="../standards-tests/mf-v1-includes-table.js"></script>
+<script src="../standards-tests/mf-v2-h-adr-geo.js"></script>
+<script src="../standards-tests/mf-v2-h-adr-geourl.js"></script>
+<script src="../standards-tests/mf-v2-h-adr-justaname.js"></script>
+<script src="../standards-tests/mf-v2-h-adr-simpleproperties.js"></script>
+<script src="../standards-tests/mf-v2-h-as-note-note.js"></script>
+<script src="../standards-tests/mf-v2-h-card-baseurl.js"></script>
+<script src="../standards-tests/mf-v2-h-card-childimplied.js"></script>
+<script src="../standards-tests/mf-v2-h-card-extendeddescription.js"></script>
+<script src="../standards-tests/mf-v2-h-card-hcard.js"></script>
+<script src="../standards-tests/mf-v2-h-card-horghcard.js"></script>
+<script src="../standards-tests/mf-v2-h-card-hyperlinkedphoto.js"></script>
+<script src="../standards-tests/mf-v2-h-card-impliedname.js"></script>
+<script src="../standards-tests/mf-v2-h-card-impliedphoto.js"></script>
+<script src="../standards-tests/mf-v2-h-card-impliedurl.js"></script>
+<script src="../standards-tests/mf-v2-h-card-justahyperlink.js"></script>
+<script src="../standards-tests/mf-v2-h-card-justaname.js"></script>
+<script src="../standards-tests/mf-v2-h-card-nested.js"></script>
+<script src="../standards-tests/mf-v2-h-card-p-property.js"></script>
+<script src="../standards-tests/mf-v2-h-card-relativeurls.js"></script>
+<script src="../standards-tests/mf-v2-h-entry-impliedvalue-nested.js"></script>
+<script src="../standards-tests/mf-v2-h-entry-justahyperlink.js"></script>
+<script src="../standards-tests/mf-v2-h-entry-justaname.js"></script>
+<script src="../standards-tests/mf-v2-h-entry-summarycontent.js"></script>
+<script src="../standards-tests/mf-v2-h-entry-u-property.js"></script>
+<script src="../standards-tests/mf-v2-h-entry-urlincontent.js"></script>
+<script src="../standards-tests/mf-v2-h-event-ampm.js"></script>
+<script src="../standards-tests/mf-v2-h-event-attendees.js"></script>
+<script src="../standards-tests/mf-v2-h-event-combining.js"></script>
+<script src="../standards-tests/mf-v2-h-event-concatenate.js"></script>
+<script src="../standards-tests/mf-v2-h-event-dates.js"></script>
+<script src="../standards-tests/mf-v2-h-event-dt-property.js"></script>
+<script src="../standards-tests/mf-v2-h-event-justahyperlink.js"></script>
+<script src="../standards-tests/mf-v2-h-event-justaname.js"></script>
+<script src="../standards-tests/mf-v2-h-event-time.js"></script>
+<script src="../standards-tests/mf-v2-h-feed-implied-title.js"></script>
+<script src="../standards-tests/mf-v2-h-feed-simple.js"></script>
+<script src="../standards-tests/mf-v2-h-geo-abbrpattern.js"></script>
+<script src="../standards-tests/mf-v2-h-geo-altitude.js"></script>
+<script src="../standards-tests/mf-v2-h-geo-hidden.js"></script>
+<script src="../standards-tests/mf-v2-h-geo-justaname.js"></script>
+<script src="../standards-tests/mf-v2-h-geo-simpleproperties.js"></script>
+<script src="../standards-tests/mf-v2-h-geo-valuetitleclass.js"></script>
+<script src="../standards-tests/mf-v2-h-news-all.js"></script>
+<script src="../standards-tests/mf-v2-h-news-minimum.js"></script>
+<script src="../standards-tests/mf-v2-h-org-hyperlink.js"></script>
+<script src="../standards-tests/mf-v2-h-org-simple.js"></script>
+<script src="../standards-tests/mf-v2-h-org-simpleproperties.js"></script>
+<script src="../standards-tests/mf-v2-h-product-aggregate.js"></script>
+<script src="../standards-tests/mf-v2-h-product-justahyperlink.js"></script>
+<script src="../standards-tests/mf-v2-h-product-justaname.js"></script>
+<script src="../standards-tests/mf-v2-h-product-simpleproperties.js"></script>
+<script src="../standards-tests/mf-v2-h-recipe-all.js"></script>
+<script src="../standards-tests/mf-v2-h-recipe-minimum.js"></script>
+<script src="../standards-tests/mf-v2-h-resume-affiliation.js"></script>
+<script src="../standards-tests/mf-v2-h-resume-contact.js"></script>
+<script src="../standards-tests/mf-v2-h-resume-education.js"></script>
+<script src="../standards-tests/mf-v2-h-resume-justaname.js"></script>
+<script src="../standards-tests/mf-v2-h-resume-skill.js"></script>
+<script src="../standards-tests/mf-v2-h-resume-work.js"></script>
+<script src="../standards-tests/mf-v2-h-review-hyperlink.js"></script>
+<script src="../standards-tests/mf-v2-h-review-implieditem.js"></script>
+<script src="../standards-tests/mf-v2-h-review-item.js"></script>
+<script src="../standards-tests/mf-v2-h-review-justaname.js"></script>
+<script src="../standards-tests/mf-v2-h-review-photo.js"></script>
+<script src="../standards-tests/mf-v2-h-review-vcard.js"></script>
+<script src="../standards-tests/mf-v2-h-review-aggregate-hevent.js"></script>
+<script src="../standards-tests/mf-v2-h-review-aggregate-justahyperlink.js"></script>
+<script src="../standards-tests/mf-v2-h-review-aggregate-simpleproperties.js"></script>
+<script src="../standards-tests/mf-v2-rel-duplicate-rels.js"></script>
+<script src="../standards-tests/mf-v2-rel-license.js"></script>
+<script src="../standards-tests/mf-v2-rel-nofollow.js"></script>
+<script src="../standards-tests/mf-v2-rel-rel-urls.js"></script>
+<script src="../standards-tests/mf-v2-rel-varying-text-duplicate-rels.js"></script>
+<script src="../standards-tests/mf-v2-rel-xfn-all.js"></script>
+<script src="../standards-tests/mf-v2-rel-xfn-elsewhere.js"></script>
+</head><body>
+<h3 class="capitalize">Microformats-shiv: standards tests</h3>
+<p>Standards tests built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST). Downloaded from github repo: microformats/tests version v0.1.24</p>
+<div id="mocha"></div>
+</body>
+<script>
+describe("Uncaught Error Check", function() {
+it("should load the tests without errors", function() {
+chai.expect(uncaughtError && uncaughtError.message).to.be.undefined;
+});
+});
+
+describe("Unexpected Warnings Check", function() {
+it("should long only the warnings we expect", function() {
+chai.expect(caughtWarnings.length).to.eql(0);
+});
+});
+
+mocha.run(function () {
+var completeNode = document.createElement("p");
+completeNode.setAttribute("id", "complete");
+completeNode.appendChild(document.createTextNode("Complete"));
+document.getElementById("mocha").appendChild(completeNode);
+});
+
+</script>
+</body></html>
--- a/toolkit/components/microformats/test/standards-tests/mf-mixed-h-card-mixedpropertries.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-mixed-h-card-mixedpropertries.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-mixed/h-card/mixedpropertries
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-card', function() {
-   var htmlFragment = "<div class=\"h-card\">\n    <p>\n        <a class=\"p-name p-org u-url\" href=\"http://mozilla.org/\">Mozilla Foundation</a>\n        <img class=\"logo\" src=\"../logo.jpg\"/>\n    </p>\n    <p class=\"adr\">\n        <span class=\"street-address\">665 3rd St.</span>  \n        <span class=\"extended-address\">Suite 207</span>  \n        <span class=\"locality\">San Francisco</span>,  \n        <span class=\"region\">CA</span>  \n        <span class=\"postal-code\">94107</span>  \n        <span class=\"p-country-name\">U.S.A.</span>  \n    </p>\n</div>";
-   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Mozilla Foundation"],"org":["Mozilla Foundation"],"url":["http://mozilla.org/"],"adr":[{"value":"665 3rd St.  \n        Suite 207  \n        San Francisco,  \n        CA  \n        94107  \n        U.S.A.","type":["h-adr"],"properties":{"street-address":["665 3rd St."],"extended-address":["Suite 207"],"locality":["San Francisco"],"region":["CA"],"postal-code":["94107"]}}]}}],"rels":{},"rel-urls":{}};
-
-   it('mixedpropertries', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-mixed/h-card/mixedpropertries
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-card', function() {
+   var htmlFragment = "<div class=\"h-card\">\n    <p>\n        <a class=\"p-name p-org u-url\" href=\"http://mozilla.org/\">Mozilla Foundation</a>\n        <img class=\"logo\" src=\"../logo.jpg\"/>\n    </p>\n    <p class=\"adr\">\n        <span class=\"street-address\">665 3rd St.</span>  \n        <span class=\"extended-address\">Suite 207</span>  \n        <span class=\"locality\">San Francisco</span>,  \n        <span class=\"region\">CA</span>  \n        <span class=\"postal-code\">94107</span>  \n        <span class=\"p-country-name\">U.S.A.</span>  \n    </p>\n</div>";
+   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Mozilla Foundation"],"org":["Mozilla Foundation"],"url":["http://mozilla.org/"],"adr":[{"value":"665 3rd St.  \n        Suite 207  \n        San Francisco,  \n        CA  \n        94107  \n        U.S.A.","type":["h-adr"],"properties":{"street-address":["665 3rd St."],"extended-address":["Suite 207"],"locality":["San Francisco"],"region":["CA"],"postal-code":["94107"]}}]}}],"rels":{},"rel-urls":{}};
+
+   it('mixedpropertries', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-mixed-h-card-tworoots.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-mixed-h-card-tworoots.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-mixed/h-card/tworoots
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-card', function() {
-   var htmlFragment = "<p class=\"h-card vcard\">Frances Berriman</p>";
-   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Frances Berriman"]}}],"rels":{},"rel-urls":{}};
-
-   it('tworoots', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-mixed/h-card/tworoots
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-card', function() {
+   var htmlFragment = "<p class=\"h-card vcard\">Frances Berriman</p>";
+   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Frances Berriman"]}}],"rels":{},"rel-urls":{}};
+
+   it('tworoots', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-mixed-h-entry-mixedroots.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-mixed-h-entry-mixedroots.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-mixed/h-entry/mixedroots
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-entry', function() {
-   var htmlFragment = "<!-- simplified version of http://aaronparecki.com/notes/2013/10/18/2/realtimeconf-mapattack -->\n<base href=\"http://aaronparecki.com/\" />\n\n<div class=\"h-entry\">\n  <div class=\"h-card vcard author p-author\">\n    <img class=\"photo logo u-photo u-logo\" src=\"https://aaronparecki.com/images/aaronpk.png\" alt=\"Aaron Parecki\"/>\n    <a href=\"https://aaronparecki.com/\" rel=\"author\" class=\"u-url u-uid url\">aaronparecki.com</a>\n    <a class=\"p-name fn value\" href=\"https://aaronparecki.com/\">Aaron Parecki</a>\n    <a href=\"https://plus.google.com/117847912875913905493\" rel=\"author\" class=\"google-profile\">Aaron Parecki</a>\n  </div>\n  <div class=\"entry-content e-content p-name\">Did you play\n    <a href=\"http://twitter.com/playmapattack\">@playmapattack</a>at\n    <a href=\"/tag/realtimeconf\">#<span class=\"p-category\">realtimeconf</span></a>? Here is some more info about how we built it!\n    <a href=\"http://pdx.esri.com/blog/2013/10/17/introducting-mapattack/\"><span class=\"protocol\">http://</span>pdx.esri.com/blog/2013/10/17/introducting-mapattack/</a>\n  </div>\n</div>";
-   var expected = {"items":[{"type":["h-entry"],"properties":{"author":[{"value":"aaronparecki.com\n    Aaron Parecki\n    Aaron Parecki","type":["h-card"],"properties":{"photo":["https://aaronparecki.com/images/aaronpk.png"],"logo":["https://aaronparecki.com/images/aaronpk.png"],"url":["https://aaronparecki.com/"],"uid":["https://aaronparecki.com/"],"name":["Aaron Parecki"]}}],"content":[{"value":"Did you play\n    @playmapattackat\n    #realtimeconf? Here is some more info about how we built it!\n    http://pdx.esri.com/blog/2013/10/17/introducting-mapattack/","html":"Did you play\n    <a href=\"http://twitter.com/playmapattack\">@playmapattack</a>at\n    <a href=\"http://aaronparecki.com/tag/realtimeconf\">#<span class=\"p-category\">realtimeconf</span></a>? Here is some more info about how we built it!\n    <a href=\"http://pdx.esri.com/blog/2013/10/17/introducting-mapattack/\"><span class=\"protocol\">http://</span>pdx.esri.com/blog/2013/10/17/introducting-mapattack/</a>\n  "}],"name":["Did you play\n    @playmapattackat\n    #realtimeconf? Here is some more info about how we built it!\n    http://pdx.esri.com/blog/2013/10/17/introducting-mapattack/"],"category":["realtimeconf"]}}],"rels":{"author":["https://aaronparecki.com/","https://plus.google.com/117847912875913905493"]},"rel-urls":{"https://aaronparecki.com/":{"text":"aaronparecki.com","rels":["author"]},"https://plus.google.com/117847912875913905493":{"text":"Aaron Parecki","rels":["author"]}}};
-
-   it('mixedroots', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-mixed/h-entry/mixedroots
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-entry', function() {
+   var htmlFragment = "<!-- simplified version of http://aaronparecki.com/notes/2013/10/18/2/realtimeconf-mapattack -->\n<base href=\"http://aaronparecki.com/\" />\n\n<div class=\"h-entry\">\n  <div class=\"h-card vcard author p-author\">\n    <img class=\"photo logo u-photo u-logo\" src=\"https://aaronparecki.com/images/aaronpk.png\" alt=\"Aaron Parecki\"/>\n    <a href=\"https://aaronparecki.com/\" rel=\"author\" class=\"u-url u-uid url\">aaronparecki.com</a>\n    <a class=\"p-name fn value\" href=\"https://aaronparecki.com/\">Aaron Parecki</a>\n    <a href=\"https://plus.google.com/117847912875913905493\" rel=\"author\" class=\"google-profile\">Aaron Parecki</a>\n  </div>\n  <div class=\"entry-content e-content p-name\">Did you play\n    <a href=\"http://twitter.com/playmapattack\">@playmapattack</a>at\n    <a href=\"/tag/realtimeconf\">#<span class=\"p-category\">realtimeconf</span></a>? Here is some more info about how we built it!\n    <a href=\"http://pdx.esri.com/blog/2013/10/17/introducting-mapattack/\"><span class=\"protocol\">http://</span>pdx.esri.com/blog/2013/10/17/introducting-mapattack/</a>\n  </div>\n</div>";
+   var expected = {"items":[{"type":["h-entry"],"properties":{"author":[{"value":"aaronparecki.com\n    Aaron Parecki\n    Aaron Parecki","type":["h-card"],"properties":{"photo":["https://aaronparecki.com/images/aaronpk.png"],"logo":["https://aaronparecki.com/images/aaronpk.png"],"url":["https://aaronparecki.com/"],"uid":["https://aaronparecki.com/"],"name":["Aaron Parecki"]}}],"content":[{"value":"Did you play\n    @playmapattackat\n    #realtimeconf? Here is some more info about how we built it!\n    http://pdx.esri.com/blog/2013/10/17/introducting-mapattack/","html":"Did you play\n    <a href=\"http://twitter.com/playmapattack\">@playmapattack</a>at\n    <a href=\"http://aaronparecki.com/tag/realtimeconf\">#<span class=\"p-category\">realtimeconf</span></a>? Here is some more info about how we built it!\n    <a href=\"http://pdx.esri.com/blog/2013/10/17/introducting-mapattack/\"><span class=\"protocol\">http://</span>pdx.esri.com/blog/2013/10/17/introducting-mapattack/</a>\n  "}],"name":["Did you play\n    @playmapattackat\n    #realtimeconf? Here is some more info about how we built it!\n    http://pdx.esri.com/blog/2013/10/17/introducting-mapattack/"],"category":["realtimeconf"]}}],"rels":{"author":["https://aaronparecki.com/","https://plus.google.com/117847912875913905493"]},"rel-urls":{"https://aaronparecki.com/":{"text":"aaronparecki.com","rels":["author"]},"https://plus.google.com/117847912875913905493":{"text":"Aaron Parecki","rels":["author"]}}};
+
+   it('mixedroots', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-mixed-h-resume-mixedroots.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-mixed-h-resume-mixedroots.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-mixed/h-resume/mixedroots
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-resume', function() {
-   var htmlFragment = "<meta charset=\"utf-8\">\n<div class=\"h-resume\">\n    <div class=\"p-contact vcard\">\n        <p class=\"fn\">Tim Berners-Lee</p>\n        <p class=\"title\">Director of the World Wide Web Foundation</p>\n    </div>\n    <p class=\"p-summary\">Invented the World Wide Web.</p><hr />\n    <div class=\"p-experience vevent vcard\">\n        <p class=\"title\">Director</p>\n        <p><a class=\"fn org summary url\" href=\"http://www.webfoundation.org/\">World Wide Web Foundation</a></p>\n        <p>\n            <time class=\"dtstart\" datetime=\"2009-01-18\">Jan 2009</time> – Present\n            <time class=\"duration\" datetime=\"P2Y11M\">(2 years 11 month)</time>\n        </p>\n    </div>\n</div>";
-   var expected = {"items":[{"type":["h-resume"],"properties":{"contact":[{"value":"Tim Berners-Lee","type":["h-card"],"properties":{"name":["Tim Berners-Lee"],"job-title":["Director of the World Wide Web Foundation"]}}],"summary":["Invented the World Wide Web."],"experience":[{"value":"World Wide Web Foundation","type":["h-event","h-card"],"properties":{"job-title":["Director"],"name":["World Wide Web Foundation"],"org":["World Wide Web Foundation"],"url":["http://www.webfoundation.org/"],"start":["2009-01-18"],"duration":["P2Y11M"]}}],"name":["Tim Berners-Lee\n        Director of the World Wide Web Foundation\n    \n    Invented the World Wide Web.\n    \n        Director\n        World Wide Web Foundation\n        \n            Jan 2009 – Present\n            (2 years 11 month)"]}}],"rels":{},"rel-urls":{}};
-
-   it('mixedroots', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-mixed/h-resume/mixedroots
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-resume', function() {
+   var htmlFragment = "<meta charset=\"utf-8\">\n<div class=\"h-resume\">\n    <div class=\"p-contact vcard\">\n        <p class=\"fn\">Tim Berners-Lee</p>\n        <p class=\"title\">Director of the World Wide Web Foundation</p>\n    </div>\n    <p class=\"p-summary\">Invented the World Wide Web.</p><hr />\n    <div class=\"p-experience vevent vcard\">\n        <p class=\"title\">Director</p>\n        <p><a class=\"fn org summary url\" href=\"http://www.webfoundation.org/\">World Wide Web Foundation</a></p>\n        <p>\n            <time class=\"dtstart\" datetime=\"2009-01-18\">Jan 2009</time> – Present\n            <time class=\"duration\" datetime=\"P2Y11M\">(2 years 11 month)</time>\n        </p>\n    </div>\n</div>";
+   var expected = {"items":[{"type":["h-resume"],"properties":{"contact":[{"value":"Tim Berners-Lee","type":["h-card"],"properties":{"name":["Tim Berners-Lee"],"job-title":["Director of the World Wide Web Foundation"]}}],"summary":["Invented the World Wide Web."],"experience":[{"value":"World Wide Web Foundation","type":["h-event","h-card"],"properties":{"job-title":["Director"],"name":["World Wide Web Foundation"],"org":["World Wide Web Foundation"],"url":["http://www.webfoundation.org/"],"start":["2009-01-18"],"duration":["P2Y11M"]}}],"name":["Tim Berners-Lee\n        Director of the World Wide Web Foundation\n    \n    Invented the World Wide Web.\n    \n        Director\n        World Wide Web Foundation\n        \n            Jan 2009 – Present\n            (2 years 11 month)"]}}],"rels":{},"rel-urls":{}};
+
+   it('mixedroots', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-adr-simpleproperties.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-adr-simpleproperties.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/adr/simpleproperties
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('adr', function() {
-   var htmlFragment = "<p class=\"adr\">\n    <span class=\"street-address\">665 3rd St.</span>  \n    <span class=\"extended-address\">Suite 207</span>  \n    <span class=\"locality\">San Francisco</span>,  \n    <span class=\"region\">CA</span>  \n    <span class=\"postal-code\">94107</span>  \n    <span class=\"country-name\">U.S.A.</span>  \n</p>";
-   var expected = {"items":[{"type":["h-adr"],"properties":{"street-address":["665 3rd St."],"extended-address":["Suite 207"],"locality":["San Francisco"],"region":["CA"],"postal-code":["94107"],"country-name":["U.S.A."]}}],"rels":{},"rel-urls":{}};
-
-   it('simpleproperties', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/adr/simpleproperties
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('adr', function() {
+   var htmlFragment = "<p class=\"adr\">\n    <span class=\"street-address\">665 3rd St.</span>  \n    <span class=\"extended-address\">Suite 207</span>  \n    <span class=\"locality\">San Francisco</span>,  \n    <span class=\"region\">CA</span>  \n    <span class=\"postal-code\">94107</span>  \n    <span class=\"country-name\">U.S.A.</span>  \n</p>";
+   var expected = {"items":[{"type":["h-adr"],"properties":{"street-address":["665 3rd St."],"extended-address":["Suite 207"],"locality":["San Francisco"],"region":["CA"],"postal-code":["94107"],"country-name":["U.S.A."]}}],"rels":{},"rel-urls":{}};
+
+   it('simpleproperties', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-geo-abbrpattern.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-geo-abbrpattern.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/geo/abbrpattern
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('geo', function() {
-   var htmlFragment = "<meta charset=\"utf-8\">\n<p class=\"geo\">\n <abbr class=\"latitude\" title=\"37.408183\">N 37° 24.491</abbr>,  \n <abbr class=\"longitude\" title=\"-122.13855\">W 122° 08.313</abbr>\n</p>";
-   var expected = {"items":[{"type":["h-geo"],"properties":{"latitude":["37.408183"],"longitude":["-122.13855"]}}],"rels":{},"rel-urls":{}};
-
-   it('abbrpattern', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/geo/abbrpattern
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('geo', function() {
+   var htmlFragment = "<meta charset=\"utf-8\">\n<p class=\"geo\">\n <abbr class=\"latitude\" title=\"37.408183\">N 37° 24.491</abbr>,  \n <abbr class=\"longitude\" title=\"-122.13855\">W 122° 08.313</abbr>\n</p>";
+   var expected = {"items":[{"type":["h-geo"],"properties":{"latitude":["37.408183"],"longitude":["-122.13855"]}}],"rels":{},"rel-urls":{}};
+
+   it('abbrpattern', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-geo-hidden.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-geo-hidden.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/geo/hidden
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('geo', function() {
-   var htmlFragment = "<p>\n    <span class=\"geo\">The Bricklayer's Arms\n        <span class=\"latitude\">\n            <span class=\"value-title\" title=\"51.513458\"> </span> \n        </span>\n        <span class=\"longitude\">\n            <span class=\"value-title\" title=\"-0.14812\"> </span>\n        </span>\n    </span>\n</p>";
-   var expected = {"items":[{"type":["h-geo"],"properties":{"latitude":["51.513458"],"longitude":["-0.14812"]}}],"rels":{},"rel-urls":{}};
-
-   it('hidden', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/geo/hidden
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('geo', function() {
+   var htmlFragment = "<p>\n    <span class=\"geo\">The Bricklayer's Arms\n        <span class=\"latitude\">\n            <span class=\"value-title\" title=\"51.513458\"> </span> \n        </span>\n        <span class=\"longitude\">\n            <span class=\"value-title\" title=\"-0.14812\"> </span>\n        </span>\n    </span>\n</p>";
+   var expected = {"items":[{"type":["h-geo"],"properties":{"latitude":["51.513458"],"longitude":["-0.14812"]}}],"rels":{},"rel-urls":{}};
+
+   it('hidden', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-geo-simpleproperties.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-geo-simpleproperties.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/geo/simpleproperties
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('geo', function() {
-   var htmlFragment = "We are meeting at \n<span class=\"geo\"> \n    <span>The Bricklayer's Arms</span>\n    (Geo: <span class=\"latitude\">51.513458</span>:\n    <span class=\"longitude\">-0.14812</span>)\n</span>";
-   var expected = {"items":[{"type":["h-geo"],"properties":{"latitude":["51.513458"],"longitude":["-0.14812"]}}],"rels":{},"rel-urls":{}};
-
-   it('simpleproperties', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/geo/simpleproperties
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('geo', function() {
+   var htmlFragment = "We are meeting at \n<span class=\"geo\"> \n    <span>The Bricklayer's Arms</span>\n    (Geo: <span class=\"latitude\">51.513458</span>:\n    <span class=\"longitude\">-0.14812</span>)\n</span>";
+   var expected = {"items":[{"type":["h-geo"],"properties":{"latitude":["51.513458"],"longitude":["-0.14812"]}}],"rels":{},"rel-urls":{}};
+
+   it('simpleproperties', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-geo-valuetitleclass.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-geo-valuetitleclass.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/geo/valuetitleclass
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('geo', function() {
-   var htmlFragment = "<meta charset=\"utf-8\">\n<p>\n    <span class=\"geo\">\n        <span class=\"latitude\">\n            <span class=\"value-title\" title=\"51.513458\">N 51° 51.345</span>, \n        </span>\n        <span class=\"longitude\">\n            <span class=\"value-title\" title=\"-0.14812\">W -0° 14.812</span>\n        </span>\n    </span>\n</p>";
-   var expected = {"items":[{"type":["h-geo"],"properties":{"latitude":["51.513458"],"longitude":["-0.14812"]}}],"rels":{},"rel-urls":{}};
-
-   it('valuetitleclass', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/geo/valuetitleclass
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('geo', function() {
+   var htmlFragment = "<meta charset=\"utf-8\">\n<p>\n    <span class=\"geo\">\n        <span class=\"latitude\">\n            <span class=\"value-title\" title=\"51.513458\">N 51° 51.345</span>, \n        </span>\n        <span class=\"longitude\">\n            <span class=\"value-title\" title=\"-0.14812\">W -0° 14.812</span>\n        </span>\n    </span>\n</p>";
+   var expected = {"items":[{"type":["h-geo"],"properties":{"latitude":["51.513458"],"longitude":["-0.14812"]}}],"rels":{},"rel-urls":{}};
+
+   it('valuetitleclass', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hcalendar-ampm.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hcalendar-ampm.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hcalendar/ampm
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hcalendar', function() {
-   var htmlFragment = "<div class=\"vevent\">\n    <span class=\"summary\">The 4th Microformat party</span> will be on \n    <ul>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07:00:00pm \n        </span></li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07:00:00am \n        </span></li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07:00pm \n        </span></li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07pm \n        </span></li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">7pm \n        </span></li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">7:00pm \n        </span></li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07:00p.m. \n        </span></li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07:00PM \n        </span></li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">7:00am \n        </span></li>\n    </ul>\n</div>";
-   var expected = {"items":[{"type":["h-event"],"properties":{"name":["The 4th Microformat party"],"start":["2009-06-26 19:00:00","2009-06-26 07:00:00","2009-06-26 19:00","2009-06-26 19","2009-06-26 19","2009-06-26 19:00","2009-06-26 19:00","2009-06-26 19:00","2009-06-26 07:00"]}}],"rels":{},"rel-urls":{}};
-
-   it('ampm', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hcalendar/ampm
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hcalendar', function() {
+   var htmlFragment = "<div class=\"vevent\">\n    <span class=\"summary\">The 4th Microformat party</span> will be on \n    <ul>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07:00:00pm \n        </span></li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07:00:00am \n        </span></li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07:00pm \n        </span></li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07pm \n        </span></li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">7pm \n        </span></li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">7:00pm \n        </span></li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07:00p.m. \n        </span></li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07:00PM \n        </span></li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">7:00am \n        </span></li>\n    </ul>\n</div>";
+   var expected = {"items":[{"type":["h-event"],"properties":{"name":["The 4th Microformat party"],"start":["2009-06-26 19:00:00","2009-06-26 07:00:00","2009-06-26 19:00","2009-06-26 19","2009-06-26 19","2009-06-26 19:00","2009-06-26 19:00","2009-06-26 19:00","2009-06-26 07:00"]}}],"rels":{},"rel-urls":{}};
+
+   it('ampm', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hcalendar-attendees.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hcalendar-attendees.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hcalendar/attendees
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hcalendar', function() {
-   var htmlFragment = "<meta charset=\"utf-8\">\n<div class=\"vevent\">\n    <span class=\"summary\">CPJ Online Press Freedom Summit</span>\n    (<time class=\"dtstart\" datetime=\"2012-10-10\">10 Nov 2012</time>) in\n    <span class=\"location\">San Francisco</span>.\n    Attendees:\n    <ul>\n        <li class=\"attendee vcard\"><span class=\"fn\">Brian Warner</span></li>\n        <li class=\"attendee vcard\"><span class=\"fn\">Kyle Machulis</span></li>\n        <li class=\"attendee vcard\"><span class=\"fn\">Tantek Çelik</span></li>\n        <li class=\"attendee vcard\"><span class=\"fn\">Sid Sutter</span></li>\n    </ul>\n</div>\n";
-   var expected = {"items":[{"type":["h-event"],"properties":{"name":["CPJ Online Press Freedom Summit"],"start":["2012-10-10"],"location":["San Francisco"],"attendee":[{"value":"Brian Warner","type":["h-card"],"properties":{"name":["Brian Warner"]}},{"value":"Kyle Machulis","type":["h-card"],"properties":{"name":["Kyle Machulis"]}},{"value":"Tantek Çelik","type":["h-card"],"properties":{"name":["Tantek Çelik"]}},{"value":"Sid Sutter","type":["h-card"],"properties":{"name":["Sid Sutter"]}}]}}],"rels":{},"rel-urls":{}};
-
-   it('attendees', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hcalendar/attendees
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hcalendar', function() {
+   var htmlFragment = "<meta charset=\"utf-8\">\n<div class=\"vevent\">\n    <span class=\"summary\">CPJ Online Press Freedom Summit</span>\n    (<time class=\"dtstart\" datetime=\"2012-10-10\">10 Nov 2012</time>) in\n    <span class=\"location\">San Francisco</span>.\n    Attendees:\n    <ul>\n        <li class=\"attendee vcard\"><span class=\"fn\">Brian Warner</span></li>\n        <li class=\"attendee vcard\"><span class=\"fn\">Kyle Machulis</span></li>\n        <li class=\"attendee vcard\"><span class=\"fn\">Tantek Çelik</span></li>\n        <li class=\"attendee vcard\"><span class=\"fn\">Sid Sutter</span></li>\n    </ul>\n</div>\n";
+   var expected = {"items":[{"type":["h-event"],"properties":{"name":["CPJ Online Press Freedom Summit"],"start":["2012-10-10"],"location":["San Francisco"],"attendee":[{"value":"Brian Warner","type":["h-card"],"properties":{"name":["Brian Warner"]}},{"value":"Kyle Machulis","type":["h-card"],"properties":{"name":["Kyle Machulis"]}},{"value":"Tantek Çelik","type":["h-card"],"properties":{"name":["Tantek Çelik"]}},{"value":"Sid Sutter","type":["h-card"],"properties":{"name":["Sid Sutter"]}}]}}],"rels":{},"rel-urls":{}};
+
+   it('attendees', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hcalendar-combining.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hcalendar-combining.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hcalendar/combining
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hcalendar', function() {
-   var htmlFragment = "<div class=\"vevent\">\n  <a class=\"summary url\" href=\"http://indiewebcamp.com/2012\">\n    IndieWebCamp 2012\n  </a>\n  from <time class=\"dtstart\">2012-06-30</time> \n  to <time class=\"dtend\">2012-07-01</time> at \n  <span class=\"location vcard\">\n    <a class=\"fn org url\" href=\"http://geoloqi.com/\">Geoloqi</a>, \n    <span class=\"adr\">\n        <span class=\"street-address\">920 SW 3rd Ave. Suite 400</span>, \n        <span class=\"locality\">Portland</span>, \n        <abbr class=\"region\" title=\"Oregon\">OR</abbr>\n    </span>\n  </span>\n</div>";
-   var expected = {"items":[{"type":["h-event"],"properties":{"name":["IndieWebCamp 2012"],"url":["http://indiewebcamp.com/2012"],"start":["2012-06-30"],"end":["2012-07-01"],"location":[{"value":"Geoloqi","type":["h-card"],"properties":{"name":["Geoloqi"],"org":["Geoloqi"],"url":["http://geoloqi.com/"],"adr":[{"value":"920 SW 3rd Ave. Suite 400, \n        Portland, \n        OR","type":["h-adr"],"properties":{"street-address":["920 SW 3rd Ave. Suite 400"],"locality":["Portland"],"region":["Oregon"]}}]}}]}}],"rels":{},"rel-urls":{}};
-
-   it('combining', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hcalendar/combining
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hcalendar', function() {
+   var htmlFragment = "<div class=\"vevent\">\n  <a class=\"summary url\" href=\"http://indiewebcamp.com/2012\">\n    IndieWebCamp 2012\n  </a>\n  from <time class=\"dtstart\">2012-06-30</time> \n  to <time class=\"dtend\">2012-07-01</time> at \n  <span class=\"location vcard\">\n    <a class=\"fn org url\" href=\"http://geoloqi.com/\">Geoloqi</a>, \n    <span class=\"adr\">\n        <span class=\"street-address\">920 SW 3rd Ave. Suite 400</span>, \n        <span class=\"locality\">Portland</span>, \n        <abbr class=\"region\" title=\"Oregon\">OR</abbr>\n    </span>\n  </span>\n</div>";
+   var expected = {"items":[{"type":["h-event"],"properties":{"name":["IndieWebCamp 2012"],"url":["http://indiewebcamp.com/2012"],"start":["2012-06-30"],"end":["2012-07-01"],"location":[{"value":"Geoloqi","type":["h-card"],"properties":{"name":["Geoloqi"],"org":["Geoloqi"],"url":["http://geoloqi.com/"],"adr":[{"value":"920 SW 3rd Ave. Suite 400, \n        Portland, \n        OR","type":["h-adr"],"properties":{"street-address":["920 SW 3rd Ave. Suite 400"],"locality":["Portland"],"region":["Oregon"]}}]}}]}}],"rels":{},"rel-urls":{}};
+
+   it('combining', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hcalendar-concatenate.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hcalendar-concatenate.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hcalendar/concatenate
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hcalendar', function() {
-   var htmlFragment = "<div class=\"vevent\">\n <span class=\"summary\">The 4th Microformat party</span> will be on \n <span class=\"dtstart\">\n  <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n  <time class=\"value\">19:00</time></span> to \n <span class=\"dtend\"><time class=\"value\">22:00</time></span>.\n</div>";
-   var expected = {"items":[{"type":["h-event"],"properties":{"name":["The 4th Microformat party"],"start":["2009-06-26 19:00"],"end":["2009-06-26 22:00"]}}],"rels":{},"rel-urls":{}};
-
-   it('concatenate', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hcalendar/concatenate
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hcalendar', function() {
+   var htmlFragment = "<div class=\"vevent\">\n <span class=\"summary\">The 4th Microformat party</span> will be on \n <span class=\"dtstart\">\n  <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n  <time class=\"value\">19:00</time></span> to \n <span class=\"dtend\"><time class=\"value\">22:00</time></span>.\n</div>";
+   var expected = {"items":[{"type":["h-event"],"properties":{"name":["The 4th Microformat party"],"start":["2009-06-26 19:00"],"end":["2009-06-26 22:00"]}}],"rels":{},"rel-urls":{}};
+
+   it('concatenate', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hcalendar-time.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hcalendar-time.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hcalendar/time
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hcalendar', function() {
-   var htmlFragment = "<div class=\"vevent\">\n    <span class=\"summary\">The 4th Microformat party</span> will be on \n    <ul>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00:00-08:00</time> \n        </li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00:00-0800</time> \n        </li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00:00+0800</time> \n        </li> \n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00:00Z</time> \n        </li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00:00</time> \n        </li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00-08:00</time> \n        </li> \n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00+08:00</time> \n        </li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00z</time> \n        </li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00</time> \n        </li>  \n        <li>\n            <time class=\"dtend\" datetime=\"2013-034\">3 February 2013</time>\n        </li>              \n    </ul>\n</div>";
-   var expected = {"items":[{"type":["h-event"],"properties":{"name":["The 4th Microformat party"],"start":["2009-06-26 19:00:00-08:00","2009-06-26 19:00:00-08:00","2009-06-26 19:00:00+08:00","2009-06-26 19:00:00Z","2009-06-26 19:00:00","2009-06-26 19:00-08:00","2009-06-26 19:00+08:00","2009-06-26 19:00Z","2009-06-26 19:00"],"end":["2013-034"]}}],"rels":{},"rel-urls":{}};
-
-   it('time', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hcalendar/time
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hcalendar', function() {
+   var htmlFragment = "<div class=\"vevent\">\n    <span class=\"summary\">The 4th Microformat party</span> will be on \n    <ul>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00:00-08:00</time> \n        </li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00:00-0800</time> \n        </li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00:00+0800</time> \n        </li> \n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00:00Z</time> \n        </li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00:00</time> \n        </li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00-08:00</time> \n        </li> \n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00+08:00</time> \n        </li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00z</time> \n        </li>\n        <li class=\"dtstart\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00</time> \n        </li>  \n        <li>\n            <time class=\"dtend\" datetime=\"2013-034\">3 February 2013</time>\n        </li>              \n    </ul>\n</div>";
+   var expected = {"items":[{"type":["h-event"],"properties":{"name":["The 4th Microformat party"],"start":["2009-06-26 19:00:00-08:00","2009-06-26 19:00:00-08:00","2009-06-26 19:00:00+08:00","2009-06-26 19:00:00Z","2009-06-26 19:00:00","2009-06-26 19:00-08:00","2009-06-26 19:00+08:00","2009-06-26 19:00Z","2009-06-26 19:00"],"end":["2013-034"]}}],"rels":{},"rel-urls":{}};
+
+   it('time', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hcard-email.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hcard-email.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hcard/email
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hcard', function() {
-   var htmlFragment = "<div class=\"vcard\">\n    <span class=\"fn\">John Doe</span> \n    <ul>\n        <li><a class=\"email\" href=\"mailto:john@example.com\">notthis@example.com</a></li>\n        <li>\n            <span class=\"email\">\n                <span class=\"type\">internet</span> \n                <a class=\"value\" href=\"mailto:john@example.com\">notthis@example.com</a>\n            </span>\n        </li> \n        <li><a class=\"email\" href=\"mailto:john@example.com?subject=parser-test\">notthis@example.com</a></li>\n        <li class=\"email\">john@example.com</li>\n    </ul>\n</div>";
-   var expected = {"items":[{"type":["h-card"],"properties":{"name":["John Doe"],"email":["mailto:john@example.com","mailto:john@example.com","mailto:john@example.com?subject=parser-test","john@example.com"]}}],"rels":{},"rel-urls":{}};
-
-   it('email', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hcard/email
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hcard', function() {
+   var htmlFragment = "<div class=\"vcard\">\n    <span class=\"fn\">John Doe</span> \n    <ul>\n        <li><a class=\"email\" href=\"mailto:john@example.com\">notthis@example.com</a></li>\n        <li>\n            <span class=\"email\">\n                <span class=\"type\">internet</span> \n                <a class=\"value\" href=\"mailto:john@example.com\">notthis@example.com</a>\n            </span>\n        </li> \n        <li><a class=\"email\" href=\"mailto:john@example.com?subject=parser-test\">notthis@example.com</a></li>\n        <li class=\"email\">john@example.com</li>\n    </ul>\n</div>";
+   var expected = {"items":[{"type":["h-card"],"properties":{"name":["John Doe"],"email":["mailto:john@example.com","mailto:john@example.com","mailto:john@example.com?subject=parser-test","john@example.com"]}}],"rels":{},"rel-urls":{}};
+
+   it('email', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hcard-format.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hcard-format.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hcard/format
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hcard', function() {
-   var htmlFragment = "<p class=\"vcard\">\n    <span class=\"profile-name fn n\">\n        <span class=\" given-name \">John</span> \n        <span class=\"FAMILY-NAME\">Doe</span> \n    </span>\n</p>";
-   var expected = {"items":[{"type":["h-card"],"properties":{"name":["John \n        Doe"],"given-name":["John"]}}],"rels":{},"rel-urls":{}};
-
-   it('format', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hcard/format
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hcard', function() {
+   var htmlFragment = "<p class=\"vcard\">\n    <span class=\"profile-name fn n\">\n        <span class=\" given-name \">John</span> \n        <span class=\"FAMILY-NAME\">Doe</span> \n    </span>\n</p>";
+   var expected = {"items":[{"type":["h-card"],"properties":{"name":["John \n        Doe"],"given-name":["John"]}}],"rels":{},"rel-urls":{}};
+
+   it('format', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hcard-hyperlinkedphoto.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hcard-hyperlinkedphoto.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hcard/hyperlinkedphoto
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hcard', function() {
-   var htmlFragment = "<a class=\"vcard\" href=\"http://rohit.khare.org/\">\n        <img alt=\"Rohit Khare\" src=\"images/photo.gif\" />\n</a>";
-   var expected = {"items":[{"type":["h-card"],"properties":{}}],"rels":{},"rel-urls":{}};
-
-   it('hyperlinkedphoto', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hcard/hyperlinkedphoto
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hcard', function() {
+   var htmlFragment = "<a class=\"vcard\" href=\"http://rohit.khare.org/\">\n        <img alt=\"Rohit Khare\" src=\"images/photo.gif\" />\n</a>";
+   var expected = {"items":[{"type":["h-card"],"properties":{}}],"rels":{},"rel-urls":{}};
+
+   it('hyperlinkedphoto', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hcard-justahyperlink.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hcard-justahyperlink.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hcard/justahyperlink
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hcard', function() {
-   var htmlFragment = "<a class=\"vcard\" href=\"http://benward.me/\">Ben Ward</a>";
-   var expected = {"items":[{"type":["h-card"],"properties":{}}],"rels":{},"rel-urls":{}};
-
-   it('justahyperlink', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hcard/justahyperlink
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hcard', function() {
+   var htmlFragment = "<a class=\"vcard\" href=\"http://benward.me/\">Ben Ward</a>";
+   var expected = {"items":[{"type":["h-card"],"properties":{}}],"rels":{},"rel-urls":{}};
+
+   it('justahyperlink', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hcard-justaname.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hcard-justaname.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hcard/justaname
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hcard', function() {
-   var htmlFragment = "<p class=\"vcard\">Frances Berriman</p>";
-   var expected = {"items":[{"type":["h-card"],"properties":{}}],"rels":{},"rel-urls":{}};
-
-   it('justaname', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hcard/justaname
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hcard', function() {
+   var htmlFragment = "<p class=\"vcard\">Frances Berriman</p>";
+   var expected = {"items":[{"type":["h-card"],"properties":{}}],"rels":{},"rel-urls":{}};
+
+   it('justaname', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hcard-multiple.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hcard-multiple.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hcard/multiple
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hcard', function() {
-   var htmlFragment = "<base href=\"http://example.com\">\n    <div class=\"vcard\">\n    \n    <div class=\"fn n\"><span class=\"given-name\">John</span> <span class=\"family-name\">Doe</span></div>\n    <a class=\"sound\" href=\"http://www.madgex.com/johndoe.mpeg\">Pronunciation of my name</a>\n    <div><img class=\"photo\" src=\"images/photo.gif\" alt=\"Photo of John Doe\" /></div>\n\n    <p>Nicknames:</p>\n    <ul>\n        <li class=\"nickname\">Man with no name</li>\n        <li class=\"nickname\">Lost boy</li>\n    </ul>\n\n    <p>About:</p>\n    <p class=\"note\">John Doe is one of those names you always have issues with.</p>\n    <p class=\"note\">It can be a real problem booking a hotel room with the name John Doe.</p>\n\n    <p>Companies:</p>\n    <div>\n        <img class=\"logo\" src=\"images/logo.gif\" alt=\"Madgex company logo\" />\n        <img class=\"logo\" src=\"images/logo.gif\" alt=\"Web Feet Media company logo\" />\n    </div>\n    <ul>\n        <li><a class=\"url org\" href=\"http://www.madgex.com/\">Madgex</a> <span class=\"title\">Creative Director</span></li>\n        <li><a class=\"url org\" href=\"http://www.webfeetmedia.com/\">Web Feet Media Ltd</a> <span class=\"title\">Owner</span></li>\n    </ul>\n    \n    <p>Tags: \n    <a rel=\"tag\" class=\"category\" href=\"http://en.wikipedia.org/wiki/design\">design</a>, \n    <a rel=\"tag\" class=\"category\" href=\"http://en.wikipedia.org/wiki/development\">development</a> and\n    <a rel=\"tag\" class=\"category\" href=\"http://en.wikipedia.org/wiki/web\">web</a>\n    </p>\n    \n    <p>Phone numbers:</p>\n    <ul>\n        <li class=\"tel\">\n            <span class=\"type\">Work</span> (<span class=\"type\">pref</span>erred):\n            <span class=\"value\">+1 415 555 100</span>\n        </li>\n        <li class=\"tel\"><span class=\"type\">Home</span>: <span class=\"value\">+1 415 555 200</span></li>\n        <li class=\"tel\"><span class=\"type\">Postal</span>: <span class=\"value\">+1 415 555 300</span></li>\n    </ul>\n    \n    <p>Emails:</p>\n    <ul>\n        <li><a class=\"email\" href=\"mailto:john.doe@madgex.com\">John Doe at Madgex</a></li>\n        <li><a class=\"email\" href=\"mailto:john.doe@webfeetmedia.com\">John Doe at Web Feet Media</a></li>\n    </ul>\n    <p>John Doe uses <span class=\"mailer\">PigeonMail 2.1</span> or <span class=\"mailer\">Outlook 2007</span> for email.</p>\n\n    <p>Addresses:</p>\n    <ul>\n        <li class=\"label\">\n            <span class=\"adr\">\n                <span class=\"type\">Work</span>: \n                <span class=\"street-address\">North Street</span>, \n                <span class=\"locality\">Brighton</span>, \n                <span class=\"country-name\">United Kingdom</span>\n            </span>\n            \n        </li>\n        <li class=\"label\">\n            <span class=\"adr\">\n                <span class=\"type\">Home</span>: \n                <span class=\"street-address\">West Street</span>, \n                <span class=\"locality\">Brighton</span>, \n                <span class=\"country-name\">United Kingdom</span>\n            </span>\n        </li>\n    </ul>\n    \n    <p>In emergency contact: <span class=\"agent\">Jane Doe</span> or <span class=\"agent vcard\"><span class=\"fn\">Dave Doe</span></span>.</p>\n    <p>Key: <span class=\"key\">hd02$Gfu*d%dh87KTa2=23934532479</span></p>\n</div>";
-   var expected = {"items":[{"type":["h-card"],"properties":{"name":["John Doe"],"given-name":["John"],"family-name":["Doe"],"sound":["http://www.madgex.com/johndoe.mpeg"],"photo":["http://example.com/images/photo.gif"],"nickname":["Man with no name","Lost boy"],"note":["John Doe is one of those names you always have issues with.","It can be a real problem booking a hotel room with the name John Doe."],"logo":["http://example.com/images/logo.gif","http://example.com/images/logo.gif"],"url":["http://www.madgex.com/","http://www.webfeetmedia.com/"],"org":["Madgex","Web Feet Media Ltd"],"job-title":["Creative Director","Owner"],"category":["design","development","web"],"tel":["+1 415 555 100","+1 415 555 200","+1 415 555 300"],"email":["mailto:john.doe@madgex.com","mailto:john.doe@webfeetmedia.com"],"mailer":["PigeonMail 2.1","Outlook 2007"],"label":["Work: \n                North Street, \n                Brighton, \n                United Kingdom","Home: \n                West Street, \n                Brighton, \n                United Kingdom"],"adr":[{"value":"Work: \n                North Street, \n                Brighton, \n                United Kingdom","type":["h-adr"],"properties":{"street-address":["North Street"],"locality":["Brighton"],"country-name":["United Kingdom"]}},{"value":"Home: \n                West Street, \n                Brighton, \n                United Kingdom","type":["h-adr"],"properties":{"street-address":["West Street"],"locality":["Brighton"],"country-name":["United Kingdom"]}}],"agent":["Jane Doe",{"value":"Dave Doe","type":["h-card"],"properties":{"name":["Dave Doe"]}}],"key":["hd02$Gfu*d%dh87KTa2=23934532479"]}}],"rels":{"tag":["http://en.wikipedia.org/wiki/design","http://en.wikipedia.org/wiki/development","http://en.wikipedia.org/wiki/web"]},"rel-urls":{"http://en.wikipedia.org/wiki/design":{"text":"design","rels":["tag"]},"http://en.wikipedia.org/wiki/development":{"text":"development","rels":["tag"]},"http://en.wikipedia.org/wiki/web":{"text":"web","rels":["tag"]}}};
-
-   it('multiple', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hcard/multiple
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hcard', function() {
+   var htmlFragment = "<base href=\"http://example.com\">\n    <div class=\"vcard\">\n    \n    <div class=\"fn n\"><span class=\"given-name\">John</span> <span class=\"family-name\">Doe</span></div>\n    <a class=\"sound\" href=\"http://www.madgex.com/johndoe.mpeg\">Pronunciation of my name</a>\n    <div><img class=\"photo\" src=\"images/photo.gif\" alt=\"Photo of John Doe\" /></div>\n\n    <p>Nicknames:</p>\n    <ul>\n        <li class=\"nickname\">Man with no name</li>\n        <li class=\"nickname\">Lost boy</li>\n    </ul>\n\n    <p>About:</p>\n    <p class=\"note\">John Doe is one of those names you always have issues with.</p>\n    <p class=\"note\">It can be a real problem booking a hotel room with the name John Doe.</p>\n\n    <p>Companies:</p>\n    <div>\n        <img class=\"logo\" src=\"images/logo.gif\" alt=\"Madgex company logo\" />\n        <img class=\"logo\" src=\"images/logo.gif\" alt=\"Web Feet Media company logo\" />\n    </div>\n    <ul>\n        <li><a class=\"url org\" href=\"http://www.madgex.com/\">Madgex</a> <span class=\"title\">Creative Director</span></li>\n        <li><a class=\"url org\" href=\"http://www.webfeetmedia.com/\">Web Feet Media Ltd</a> <span class=\"title\">Owner</span></li>\n    </ul>\n    \n    <p>Tags: \n    <a rel=\"tag\" class=\"category\" href=\"http://en.wikipedia.org/wiki/design\">design</a>, \n    <a rel=\"tag\" class=\"category\" href=\"http://en.wikipedia.org/wiki/development\">development</a> and\n    <a rel=\"tag\" class=\"category\" href=\"http://en.wikipedia.org/wiki/web\">web</a>\n    </p>\n    \n    <p>Phone numbers:</p>\n    <ul>\n        <li class=\"tel\">\n            <span class=\"type\">Work</span> (<span class=\"type\">pref</span>erred):\n            <span class=\"value\">+1 415 555 100</span>\n        </li>\n        <li class=\"tel\"><span class=\"type\">Home</span>: <span class=\"value\">+1 415 555 200</span></li>\n        <li class=\"tel\"><span class=\"type\">Postal</span>: <span class=\"value\">+1 415 555 300</span></li>\n    </ul>\n    \n    <p>Emails:</p>\n    <ul>\n        <li><a class=\"email\" href=\"mailto:john.doe@madgex.com\">John Doe at Madgex</a></li>\n        <li><a class=\"email\" href=\"mailto:john.doe@webfeetmedia.com\">John Doe at Web Feet Media</a></li>\n    </ul>\n    <p>John Doe uses <span class=\"mailer\">PigeonMail 2.1</span> or <span class=\"mailer\">Outlook 2007</span> for email.</p>\n\n    <p>Addresses:</p>\n    <ul>\n        <li class=\"label\">\n            <span class=\"adr\">\n                <span class=\"type\">Work</span>: \n                <span class=\"street-address\">North Street</span>, \n                <span class=\"locality\">Brighton</span>, \n                <span class=\"country-name\">United Kingdom</span>\n            </span>\n            \n        </li>\n        <li class=\"label\">\n            <span class=\"adr\">\n                <span class=\"type\">Home</span>: \n                <span class=\"street-address\">West Street</span>, \n                <span class=\"locality\">Brighton</span>, \n                <span class=\"country-name\">United Kingdom</span>\n            </span>\n        </li>\n    </ul>\n    \n    <p>In emergency contact: <span class=\"agent\">Jane Doe</span> or <span class=\"agent vcard\"><span class=\"fn\">Dave Doe</span></span>.</p>\n    <p>Key: <span class=\"key\">hd02$Gfu*d%dh87KTa2=23934532479</span></p>\n</div>";
+   var expected = {"items":[{"type":["h-card"],"properties":{"name":["John Doe"],"given-name":["John"],"family-name":["Doe"],"sound":["http://www.madgex.com/johndoe.mpeg"],"photo":["http://example.com/images/photo.gif"],"nickname":["Man with no name","Lost boy"],"note":["John Doe is one of those names you always have issues with.","It can be a real problem booking a hotel room with the name John Doe."],"logo":["http://example.com/images/logo.gif","http://example.com/images/logo.gif"],"url":["http://www.madgex.com/","http://www.webfeetmedia.com/"],"org":["Madgex","Web Feet Media Ltd"],"job-title":["Creative Director","Owner"],"category":["design","development","web"],"tel":["+1 415 555 100","+1 415 555 200","+1 415 555 300"],"email":["mailto:john.doe@madgex.com","mailto:john.doe@webfeetmedia.com"],"mailer":["PigeonMail 2.1","Outlook 2007"],"label":["Work: \n                North Street, \n                Brighton, \n                United Kingdom","Home: \n                West Street, \n                Brighton, \n                United Kingdom"],"adr":[{"value":"Work: \n                North Street, \n                Brighton, \n                United Kingdom","type":["h-adr"],"properties":{"street-address":["North Street"],"locality":["Brighton"],"country-name":["United Kingdom"]}},{"value":"Home: \n                West Street, \n                Brighton, \n                United Kingdom","type":["h-adr"],"properties":{"street-address":["West Street"],"locality":["Brighton"],"country-name":["United Kingdom"]}}],"agent":["Jane Doe",{"value":"Dave Doe","type":["h-card"],"properties":{"name":["Dave Doe"]}}],"key":["hd02$Gfu*d%dh87KTa2=23934532479"]}}],"rels":{"tag":["http://en.wikipedia.org/wiki/design","http://en.wikipedia.org/wiki/development","http://en.wikipedia.org/wiki/web"]},"rel-urls":{"http://en.wikipedia.org/wiki/design":{"text":"design","rels":["tag"]},"http://en.wikipedia.org/wiki/development":{"text":"development","rels":["tag"]},"http://en.wikipedia.org/wiki/web":{"text":"web","rels":["tag"]}}};
+
+   it('multiple', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hcard-name.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hcard-name.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hcard/name
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hcard', function() {
-   var htmlFragment = "<base href=\"http://example.com\">\n<div class=\"vcard\">\n    <div class=\"name\">\n        <span class=\"honorific-prefix\">Dr</span> \n        <span class=\"given-name\">John</span> \n        <abbr class=\"additional-name\" title=\"Peter\">P</abbr>  \n        <span class=\"family-name\">Doe</span> \n        <data class=\"honorific-suffix\" value=\"MSc\"></data>\n        <img class=\"photo honorific-suffix\" src=\"images/logo.gif\" alt=\"PHD\" />\n    </div>\n</div>";
-   var expected = {"items":[{"type":["h-card"],"properties":{"honorific-prefix":["Dr"],"given-name":["John"],"additional-name":["Peter"],"family-name":["Doe"],"honorific-suffix":["MSc","PHD"],"photo":["http://example.com/images/logo.gif"]}}],"rels":{},"rel-urls":{}};
-
-   it('name', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hcard/name
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hcard', function() {
+   var htmlFragment = "<base href=\"http://example.com\">\n<div class=\"vcard\">\n    <div class=\"name\">\n        <span class=\"honorific-prefix\">Dr</span> \n        <span class=\"given-name\">John</span> \n        <abbr class=\"additional-name\" title=\"Peter\">P</abbr>  \n        <span class=\"family-name\">Doe</span> \n        <data class=\"honorific-suffix\" value=\"MSc\"></data>\n        <img class=\"photo honorific-suffix\" src=\"images/logo.gif\" alt=\"PHD\" />\n    </div>\n</div>";
+   var expected = {"items":[{"type":["h-card"],"properties":{"honorific-prefix":["Dr"],"given-name":["John"],"additional-name":["Peter"],"family-name":["Doe"],"honorific-suffix":["MSc","PHD"],"photo":["http://example.com/images/logo.gif"]}}],"rels":{},"rel-urls":{}};
+
+   it('name', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hcard-single.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hcard-single.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hcard/single
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hcard', function() {
-   var htmlFragment = "<div class=\"vcard\">\n        \n        <div class=\"fn n\"><span class=\"given-name sort-string\">John</span> Doe</div>\n        <div>Birthday: <abbr class=\"bday\" title=\"2000-01-01T00:00:00-08:00\">January 1st, 2000</abbr></div>\n        <div>Role: <span class=\"role\">Designer</span></div>\n        <div>Location: <abbr class=\"geo\" title=\"30.267991;-97.739568\">Brighton</abbr></div>\n        <div>Time zone: <abbr class=\"tz\" title=\"-05:00\">Eastern Standard Time</abbr></div>\n        \n        <div>Profile details:\n            <div>Profile id: <span class=\"uid\">http://example.com/profiles/johndoe</span></div>\n            <div>Details are: <span class=\"class\">Public</span></div>\n            <div>Last updated: <abbr class=\"rev\" title=\"2008-01-01T13:45:00\">January 1st, 2008 - 13:45</abbr></div>\n        </div>\n    </div>";
-   var expected = {"items":[{"type":["h-card"],"properties":{"name":["John Doe"],"given-name":["John"],"sort-string":["John"],"bday":["2000-01-01 00:00:00-08:00"],"role":["Designer"],"geo":[{"value":"30.267991;-97.739568","type":["h-geo"],"properties":{"name":["30.267991;-97.739568"]}}],"tz":["-05:00"],"uid":["http://example.com/profiles/johndoe"],"class":["Public"],"rev":["2008-01-01 13:45:00"]}}],"rels":{},"rel-urls":{}};
-
-   it('single', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hcard/single
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hcard', function() {
+   var htmlFragment = "<div class=\"vcard\">\n        \n        <div class=\"fn n\"><span class=\"given-name sort-string\">John</span> Doe</div>\n        <div>Birthday: <abbr class=\"bday\" title=\"2000-01-01T00:00:00-08:00\">January 1st, 2000</abbr></div>\n        <div>Role: <span class=\"role\">Designer</span></div>\n        <div>Location: <abbr class=\"geo\" title=\"30.267991;-97.739568\">Brighton</abbr></div>\n        <div>Time zone: <abbr class=\"tz\" title=\"-05:00\">Eastern Standard Time</abbr></div>\n        \n        <div>Profile details:\n            <div>Profile id: <span class=\"uid\">http://example.com/profiles/johndoe</span></div>\n            <div>Details are: <span class=\"class\">Public</span></div>\n            <div>Last updated: <abbr class=\"rev\" title=\"2008-01-01T13:45:00\">January 1st, 2008 - 13:45</abbr></div>\n        </div>\n    </div>";
+   var expected = {"items":[{"type":["h-card"],"properties":{"name":["John Doe"],"given-name":["John"],"sort-string":["John"],"bday":["2000-01-01 00:00:00-08:00"],"role":["Designer"],"geo":[{"value":"30.267991;-97.739568","type":["h-geo"],"properties":{"name":["30.267991;-97.739568"]}}],"tz":["-05:00"],"uid":["http://example.com/profiles/johndoe"],"class":["Public"],"rev":["2008-01-01 13:45:00"]}}],"rels":{},"rel-urls":{}};
+
+   it('single', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hentry-summarycontent.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hentry-summarycontent.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hentry/summarycontent
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hentry', function() {
-   var htmlFragment = "<meta charset=\"utf-8\">\n<div class=\"hentry\">\n    <h1><a class=\"entry-title\" href=\"http://microformats.org/2012/06/25/microformats-org-at-7\">microformats.org at 7</a></h1>\n    <div class=\"entry-content\">\n        <p class=\"entry-summary\">Last week the microformats.org community \n            celebrated its 7th birthday at a gathering hosted by Mozilla in \n            San Francisco and recognized accomplishments, challenges, and \n            opportunities.</p>\n\n        <p>The microformats tagline “humans first, machines second” \n            forms the basis of many of our \n            <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n            in that regard, we’d like to recognize a few people and \n            thank them for their years of volunteer service </p>\n    </div>  \n    <p>Updated \n        <time class=\"updated\" datetime=\"2012-06-25T17:08:26\">June 25th, 2012</time> by\n        <span class=\"author vcard\"><a class=\"fn url\" href=\"http://tantek.com/\">Tantek</a></span>\n    </p>\n</div>";
-   var expected = {"items":[{"type":["h-entry"],"properties":{"name":["microformats.org at 7"],"content":[{"value":"Last week the microformats.org community \n            celebrated its 7th birthday at a gathering hosted by Mozilla in \n            San Francisco and recognized accomplishments, challenges, and \n            opportunities.\n\n        The microformats tagline “humans first, machines second” \n            forms the basis of many of our \n            principles, and \n            in that regard, we’d like to recognize a few people and \n            thank them for their years of volunteer service","html":"\n        <p class=\"entry-summary\">Last week the microformats.org community \n            celebrated its 7th birthday at a gathering hosted by Mozilla in \n            San Francisco and recognized accomplishments, challenges, and \n            opportunities.</p>\n\n        <p>The microformats tagline “humans first, machines second” \n            forms the basis of many of our \n            <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n            in that regard, we’d like to recognize a few people and \n            thank them for their years of volunteer service </p>\n    "}],"summary":["Last week the microformats.org community \n            celebrated its 7th birthday at a gathering hosted by Mozilla in \n            San Francisco and recognized accomplishments, challenges, and \n            opportunities."],"updated":["2012-06-25 17:08:26"],"author":[{"value":"Tantek","type":["h-card"],"properties":{"name":["Tantek"],"url":["http://tantek.com/"]}}]}}],"rels":{},"rel-urls":{}};
-
-   it('summarycontent', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hentry/summarycontent
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hentry', function() {
+   var htmlFragment = "<meta charset=\"utf-8\">\n<div class=\"hentry\">\n    <h1><a class=\"entry-title\" href=\"http://microformats.org/2012/06/25/microformats-org-at-7\">microformats.org at 7</a></h1>\n    <div class=\"entry-content\">\n        <p class=\"entry-summary\">Last week the microformats.org community \n            celebrated its 7th birthday at a gathering hosted by Mozilla in \n            San Francisco and recognized accomplishments, challenges, and \n            opportunities.</p>\n\n        <p>The microformats tagline “humans first, machines second” \n            forms the basis of many of our \n            <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n            in that regard, we’d like to recognize a few people and \n            thank them for their years of volunteer service </p>\n    </div>  \n    <p>Updated \n        <time class=\"updated\" datetime=\"2012-06-25T17:08:26\">June 25th, 2012</time> by\n        <span class=\"author vcard\"><a class=\"fn url\" href=\"http://tantek.com/\">Tantek</a></span>\n    </p>\n</div>";
+   var expected = {"items":[{"type":["h-entry"],"properties":{"name":["microformats.org at 7"],"content":[{"value":"Last week the microformats.org community \n            celebrated its 7th birthday at a gathering hosted by Mozilla in \n            San Francisco and recognized accomplishments, challenges, and \n            opportunities.\n\n        The microformats tagline “humans first, machines second” \n            forms the basis of many of our \n            principles, and \n            in that regard, we’d like to recognize a few people and \n            thank them for their years of volunteer service","html":"\n        <p class=\"entry-summary\">Last week the microformats.org community \n            celebrated its 7th birthday at a gathering hosted by Mozilla in \n            San Francisco and recognized accomplishments, challenges, and \n            opportunities.</p>\n\n        <p>The microformats tagline “humans first, machines second” \n            forms the basis of many of our \n            <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n            in that regard, we’d like to recognize a few people and \n            thank them for their years of volunteer service </p>\n    "}],"summary":["Last week the microformats.org community \n            celebrated its 7th birthday at a gathering hosted by Mozilla in \n            San Francisco and recognized accomplishments, challenges, and \n            opportunities."],"updated":["2012-06-25 17:08:26"],"author":[{"value":"Tantek","type":["h-card"],"properties":{"name":["Tantek"],"url":["http://tantek.com/"]}}]}}],"rels":{},"rel-urls":{}};
+
+   it('summarycontent', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hfeed-simple.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hfeed-simple.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hfeed/simple
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hfeed', function() {
-   var htmlFragment = "<section class=\"hfeed\">\n\t<h1 class=\"name\">Microformats blog</h1>\n\t<span class=\"author vcard\"><a class=\"fn url\" href=\"http://tantek.com/\">Tantek</a></span>\n\t<a class=\"url\" href=\"http://microformats.org/blog\">permlink</a>\n\t<img class=\"photo\" src=\"photo.jpeg\"/>\n\t<p>\n\t\tTags: <a rel=\"tag\" href=\"tags/microformats\">microformats</a>, \n\t\t<a rel=\"tag\" href=\"tags/html\">html</a>\n\t</p>\n\t\n\t<div class=\"hentry\">\n\t    <h1><a class=\"entry-title\" rel=\"bookmark\" href=\"http://microformats.org/2012/06/25/microformats-org-at-7\">microformats.org at 7</a></h1>\n\t    <div class=\"entry-content\">\n\t        <p class=\"entry-summary\">Last week the microformats.org community \n\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t            San Francisco and recognized accomplishments, challenges, and \n\t            opportunities.</p>\n\t\n\t        <p>The microformats tagline “humans first, machines second” \n\t            forms the basis of many of our \n\t            <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n\t            in that regard, we’d like to recognize a few people and \n\t            thank them for their years of volunteer service </p>\n\t    </div>  \n\t    <p>Updated \n\t        <time class=\"updated\" datetime=\"2012-06-25T17:08:26\">June 25th, 2012</time>\n\t    </p>\n\t</div>\n\t\n</section>";
-   var expected = {"items":[{"type":["h-feed"],"properties":{"author":[{"value":"Tantek","type":["h-card"],"properties":{"name":["Tantek"],"url":["http://tantek.com/"]}}],"url":["http://microformats.org/blog"],"photo":["http://example.com/photo.jpeg"],"category":["microformats","html"]},"children":[{"value":"microformats.org at 7\n\t    \n\t        Last week the microformats.org community \n\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t            San Francisco and recognized accomplishments, challenges, and \n\t            opportunities.\n\t\n\t        The microformats tagline “humans first, machines second” \n\t            forms the basis of many of our \n\t            principles, and \n\t            in that regard, we’d like to recognize a few people and \n\t            thank them for their years of volunteer service \n\t      \n\t    Updated \n\t        June 25th, 2012","type":["h-entry"],"properties":{"name":["microformats.org at 7"],"url":["http://microformats.org/2012/06/25/microformats-org-at-7"],"content":[{"value":"Last week the microformats.org community \n\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t            San Francisco and recognized accomplishments, challenges, and \n\t            opportunities.\n\t\n\t        The microformats tagline “humans first, machines second” \n\t            forms the basis of many of our \n\t            principles, and \n\t            in that regard, we’d like to recognize a few people and \n\t            thank them for their years of volunteer service","html":"\n\t        <p class=\"entry-summary\">Last week the microformats.org community \n\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t            San Francisco and recognized accomplishments, challenges, and \n\t            opportunities.</p>\n\t\n\t        <p>The microformats tagline “humans first, machines second” \n\t            forms the basis of many of our \n\t            <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n\t            in that regard, we’d like to recognize a few people and \n\t            thank them for their years of volunteer service </p>\n\t    "}],"summary":["Last week the microformats.org community \n\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t            San Francisco and recognized accomplishments, challenges, and \n\t            opportunities."],"updated":["2012-06-25 17:08:26"]}}]}],"rels":{"tag":["http://example.com/tags/microformats","http://example.com/tags/html"],"bookmark":["http://microformats.org/2012/06/25/microformats-org-at-7"]},"rel-urls":{"http://example.com/tags/microformats":{"text":"microformats","rels":["tag"]},"http://example.com/tags/html":{"text":"html","rels":["tag"]},"http://microformats.org/2012/06/25/microformats-org-at-7":{"text":"microformats.org at 7","rels":["bookmark"]}}};
-
-   it('simple', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hfeed/simple
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hfeed', function() {
+   var htmlFragment = "<section class=\"hfeed\">\n\t<h1 class=\"name\">Microformats blog</h1>\n\t<span class=\"author vcard\"><a class=\"fn url\" href=\"http://tantek.com/\">Tantek</a></span>\n\t<a class=\"url\" href=\"http://microformats.org/blog\">permlink</a>\n\t<img class=\"photo\" src=\"photo.jpeg\"/>\n\t<p>\n\t\tTags: <a rel=\"tag\" href=\"tags/microformats\">microformats</a>, \n\t\t<a rel=\"tag\" href=\"tags/html\">html</a>\n\t</p>\n\t\n\t<div class=\"hentry\">\n\t    <h1><a class=\"entry-title\" rel=\"bookmark\" href=\"http://microformats.org/2012/06/25/microformats-org-at-7\">microformats.org at 7</a></h1>\n\t    <div class=\"entry-content\">\n\t        <p class=\"entry-summary\">Last week the microformats.org community \n\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t            San Francisco and recognized accomplishments, challenges, and \n\t            opportunities.</p>\n\t\n\t        <p>The microformats tagline “humans first, machines second” \n\t            forms the basis of many of our \n\t            <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n\t            in that regard, we’d like to recognize a few people and \n\t            thank them for their years of volunteer service </p>\n\t    </div>  \n\t    <p>Updated \n\t        <time class=\"updated\" datetime=\"2012-06-25T17:08:26\">June 25th, 2012</time>\n\t    </p>\n\t</div>\n\t\n</section>";
+   var expected = {"items":[{"type":["h-feed"],"properties":{"author":[{"value":"Tantek","type":["h-card"],"properties":{"name":["Tantek"],"url":["http://tantek.com/"]}}],"url":["http://microformats.org/blog"],"photo":["http://example.com/photo.jpeg"],"category":["microformats","html"]},"children":[{"value":"microformats.org at 7\n\t    \n\t        Last week the microformats.org community \n\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t            San Francisco and recognized accomplishments, challenges, and \n\t            opportunities.\n\t\n\t        The microformats tagline “humans first, machines second” \n\t            forms the basis of many of our \n\t            principles, and \n\t            in that regard, we’d like to recognize a few people and \n\t            thank them for their years of volunteer service \n\t      \n\t    Updated \n\t        June 25th, 2012","type":["h-entry"],"properties":{"name":["microformats.org at 7"],"url":["http://microformats.org/2012/06/25/microformats-org-at-7"],"content":[{"value":"Last week the microformats.org community \n\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t            San Francisco and recognized accomplishments, challenges, and \n\t            opportunities.\n\t\n\t        The microformats tagline “humans first, machines second” \n\t            forms the basis of many of our \n\t            principles, and \n\t            in that regard, we’d like to recognize a few people and \n\t            thank them for their years of volunteer service","html":"\n\t        <p class=\"entry-summary\">Last week the microformats.org community \n\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t            San Francisco and recognized accomplishments, challenges, and \n\t            opportunities.</p>\n\t\n\t        <p>The microformats tagline “humans first, machines second” \n\t            forms the basis of many of our \n\t            <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n\t            in that regard, we’d like to recognize a few people and \n\t            thank them for their years of volunteer service </p>\n\t    "}],"summary":["Last week the microformats.org community \n\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t            San Francisco and recognized accomplishments, challenges, and \n\t            opportunities."],"updated":["2012-06-25 17:08:26"]}}]}],"rels":{"tag":["http://example.com/tags/microformats","http://example.com/tags/html"],"bookmark":["http://microformats.org/2012/06/25/microformats-org-at-7"]},"rel-urls":{"http://example.com/tags/microformats":{"text":"microformats","rels":["tag"]},"http://example.com/tags/html":{"text":"html","rels":["tag"]},"http://microformats.org/2012/06/25/microformats-org-at-7":{"text":"microformats.org at 7","rels":["bookmark"]}}};
+
+   it('simple', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hnews-all.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hnews-all.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hnews/all
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hnews', function() {
-   var htmlFragment = "<div class=\"hnews\">\n    <div class=\"entry hentry\">\n        <h1><a class=\"entry-title\" rel=\"bookmark\" href=\"http://microformats.org/2012/06/25/microformats-org-at-7\">microformats.org at 7</a></h1>\n        <div class=\"entry-content\">\n            <p class=\"entry-summary\">Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.</p>\n\n            <p>The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service </p>\n        </div>  \n        <p>Updated \n            <time class=\"updated\" datetime=\"2012-06-25T17:08:26\">June 25th, 2012</time> by\n            <span class=\"author vcard\"><a class=\"fn url\" href=\"http://tantek.com/\">Tantek</a></span>\n        </p>\n    </div>\n\n    <p>\n        <span class=\"dateline vcard\">\n            <span class=\"adr\">\n                <span class=\"locality\">San Francisco</span>, \n                <span class=\"region\">CA</span> \n            </span>\n        </span>\n        (Geo: <span class=\"geo\">37.774921;-122.445202</span>) \n        <span class=\"source-org vcard\">\n            <a class=\"fn org url\" href=\"http://microformats.org/\">microformats.org</a>\n        </span>\n    </p>\n    <p>\n        <a rel=\"principles\" href=\"http://microformats.org/wiki/Category:public_domain_license\">Publishing policy</a>\n    </p>\n</div>";
-   var expected = {"items":[{"type":["h-news"],"properties":{"entry":[{"value":"microformats.org at 7","type":["h-entry"],"properties":{"name":["microformats.org at 7"],"url":["http://microformats.org/2012/06/25/microformats-org-at-7"],"content":[{"value":"Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.\n\n            The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                principles, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service","html":"\n            <p class=\"entry-summary\">Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.</p>\n\n            <p>The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service </p>\n        "}],"summary":["Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities."],"updated":["2012-06-25 17:08:26"],"author":[{"value":"Tantek","type":["h-card"],"properties":{"name":["Tantek"],"url":["http://tantek.com/"]}}]}}],"dateline":[{"value":"San Francisco, \n                CA","type":["h-card"],"properties":{"adr":[{"value":"San Francisco, \n                CA","type":["h-adr"],"properties":{"locality":["San Francisco"],"region":["CA"]}}]}}],"geo":[{"value":"37.774921;-122.445202","type":["h-geo"],"properties":{"name":["37.774921;-122.445202"]}}],"source-org":[{"value":"microformats.org","type":["h-card"],"properties":{"name":["microformats.org"],"org":["microformats.org"],"url":["http://microformats.org/"]}}],"principles":["http://microformats.org/wiki/Category:public_domain_license"]}}],"rels":{"bookmark":["http://microformats.org/2012/06/25/microformats-org-at-7"],"principles":["http://microformats.org/wiki/Category:public_domain_license"]},"rel-urls":{"http://microformats.org/2012/06/25/microformats-org-at-7":{"text":"microformats.org at 7","rels":["bookmark"]},"http://microformats.org/wiki/Category:public_domain_license":{"text":"Publishing policy","rels":["principles"]}}};
-
-   it('all', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hnews/all
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hnews', function() {
+   var htmlFragment = "<div class=\"hnews\">\n    <div class=\"entry hentry\">\n        <h1><a class=\"entry-title\" rel=\"bookmark\" href=\"http://microformats.org/2012/06/25/microformats-org-at-7\">microformats.org at 7</a></h1>\n        <div class=\"entry-content\">\n            <p class=\"entry-summary\">Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.</p>\n\n            <p>The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service </p>\n        </div>  \n        <p>Updated \n            <time class=\"updated\" datetime=\"2012-06-25T17:08:26\">June 25th, 2012</time> by\n            <span class=\"author vcard\"><a class=\"fn url\" href=\"http://tantek.com/\">Tantek</a></span>\n        </p>\n    </div>\n\n    <p>\n        <span class=\"dateline vcard\">\n            <span class=\"adr\">\n                <span class=\"locality\">San Francisco</span>, \n                <span class=\"region\">CA</span> \n            </span>\n        </span>\n        (Geo: <span class=\"geo\">37.774921;-122.445202</span>) \n        <span class=\"source-org vcard\">\n            <a class=\"fn org url\" href=\"http://microformats.org/\">microformats.org</a>\n        </span>\n    </p>\n    <p>\n        <a rel=\"principles\" href=\"http://microformats.org/wiki/Category:public_domain_license\">Publishing policy</a>\n    </p>\n</div>";
+   var expected = {"items":[{"type":["h-news"],"properties":{"entry":[{"value":"microformats.org at 7","type":["h-entry"],"properties":{"name":["microformats.org at 7"],"url":["http://microformats.org/2012/06/25/microformats-org-at-7"],"content":[{"value":"Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.\n\n            The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                principles, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service","html":"\n            <p class=\"entry-summary\">Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.</p>\n\n            <p>The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service </p>\n        "}],"summary":["Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities."],"updated":["2012-06-25 17:08:26"],"author":[{"value":"Tantek","type":["h-card"],"properties":{"name":["Tantek"],"url":["http://tantek.com/"]}}]}}],"dateline":[{"value":"San Francisco, \n                CA","type":["h-card"],"properties":{"adr":[{"value":"San Francisco, \n                CA","type":["h-adr"],"properties":{"locality":["San Francisco"],"region":["CA"]}}]}}],"geo":[{"value":"37.774921;-122.445202","type":["h-geo"],"properties":{"name":["37.774921;-122.445202"]}}],"source-org":[{"value":"microformats.org","type":["h-card"],"properties":{"name":["microformats.org"],"org":["microformats.org"],"url":["http://microformats.org/"]}}],"principles":["http://microformats.org/wiki/Category:public_domain_license"]}}],"rels":{"bookmark":["http://microformats.org/2012/06/25/microformats-org-at-7"],"principles":["http://microformats.org/wiki/Category:public_domain_license"]},"rel-urls":{"http://microformats.org/2012/06/25/microformats-org-at-7":{"text":"microformats.org at 7","rels":["bookmark"]},"http://microformats.org/wiki/Category:public_domain_license":{"text":"Publishing policy","rels":["principles"]}}};
+
+   it('all', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hnews-minimum.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hnews-minimum.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hnews/minimum
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hnews', function() {
-   var htmlFragment = "<div class=\"hnews\">\n    <div class=\"entry hentry\">\n        <h1><a class=\"entry-title\" rel=\"bookmark\" href=\"http://microformats.org/2012/06/25/microformats-org-at-7\">microformats.org at 7</a></h1>\n        <div class=\"entry-content\">\n            <p class=\"entry-summary\">Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.</p>\n\n            <p>The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service </p>\n        </div>  \n        <p>Updated \n            <time class=\"updated\" datetime=\"2012-06-25T17:08:26\">June 25th, 2012</time> by\n            <span class=\"author vcard\"><a class=\"fn url\" href=\"http://tantek.com/\">Tantek</a></span>\n        </p>\n    </div>\n\n    <p class=\"source-org vcard\">\n        <a class=\"fn org url\" href=\"http://microformats.org/\">microformats.org</a> \n    </p>\n</div>";
-   var expected = {"items":[{"type":["h-news"],"properties":{"entry":[{"value":"microformats.org at 7","type":["h-entry"],"properties":{"name":["microformats.org at 7"],"url":["http://microformats.org/2012/06/25/microformats-org-at-7"],"content":[{"value":"Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.\n\n            The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                principles, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service","html":"\n            <p class=\"entry-summary\">Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.</p>\n\n            <p>The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service </p>\n        "}],"summary":["Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities."],"updated":["2012-06-25 17:08:26"],"author":[{"value":"Tantek","type":["h-card"],"properties":{"name":["Tantek"],"url":["http://tantek.com/"]}}]}}],"source-org":[{"value":"microformats.org","type":["h-card"],"properties":{"name":["microformats.org"],"org":["microformats.org"],"url":["http://microformats.org/"]}}]}}],"rels":{"bookmark":["http://microformats.org/2012/06/25/microformats-org-at-7"]},"rel-urls":{"http://microformats.org/2012/06/25/microformats-org-at-7":{"text":"microformats.org at 7","rels":["bookmark"]}}};
-
-   it('minimum', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hnews/minimum
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hnews', function() {
+   var htmlFragment = "<div class=\"hnews\">\n    <div class=\"entry hentry\">\n        <h1><a class=\"entry-title\" rel=\"bookmark\" href=\"http://microformats.org/2012/06/25/microformats-org-at-7\">microformats.org at 7</a></h1>\n        <div class=\"entry-content\">\n            <p class=\"entry-summary\">Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.</p>\n\n            <p>The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service </p>\n        </div>  \n        <p>Updated \n            <time class=\"updated\" datetime=\"2012-06-25T17:08:26\">June 25th, 2012</time> by\n            <span class=\"author vcard\"><a class=\"fn url\" href=\"http://tantek.com/\">Tantek</a></span>\n        </p>\n    </div>\n\n    <p class=\"source-org vcard\">\n        <a class=\"fn org url\" href=\"http://microformats.org/\">microformats.org</a> \n    </p>\n</div>";
+   var expected = {"items":[{"type":["h-news"],"properties":{"entry":[{"value":"microformats.org at 7","type":["h-entry"],"properties":{"name":["microformats.org at 7"],"url":["http://microformats.org/2012/06/25/microformats-org-at-7"],"content":[{"value":"Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.\n\n            The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                principles, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service","html":"\n            <p class=\"entry-summary\">Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.</p>\n\n            <p>The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service </p>\n        "}],"summary":["Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities."],"updated":["2012-06-25 17:08:26"],"author":[{"value":"Tantek","type":["h-card"],"properties":{"name":["Tantek"],"url":["http://tantek.com/"]}}]}}],"source-org":[{"value":"microformats.org","type":["h-card"],"properties":{"name":["microformats.org"],"org":["microformats.org"],"url":["http://microformats.org/"]}}]}}],"rels":{"bookmark":["http://microformats.org/2012/06/25/microformats-org-at-7"]},"rel-urls":{"http://microformats.org/2012/06/25/microformats-org-at-7":{"text":"microformats.org at 7","rels":["bookmark"]}}};
+
+   it('minimum', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hproduct-aggregate.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hproduct-aggregate.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hproduct/aggregate
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hproduct', function() {
-   var htmlFragment = "<meta charset=\"utf-8\">\n<div class=\"hproduct\">\n    <h2 class=\"fn\">Raspberry Pi</h2>\n    <img class=\"photo\" src=\"http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/RaspberryPi.jpg/320px-RaspberryPi.jpg\" />\n    <p class=\"description\">The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming.</p>\n    <a class=\"url\" href=\"http://www.raspberrypi.org/\">More info about the Raspberry Pi</a>\n    <p class=\"price\">£29.95</p>\n    <p class=\"review hreview-aggregate\">\n        <span class=\"rating\">\n            <span class=\"average value\">9.2</span> out of \n            <span class=\"best\">10</span> \n            based on <span class=\"count\">178</span> reviews\n        </span>\n    </p>\n    <p>Categories: \n        <a rel=\"tag\" href=\"http://en.wikipedia.org/wiki/computer\" class=\"category\">Computer</a>, \n        <a rel=\"tag\" href=\"http://en.wikipedia.org/wiki/education\" class=\"category\">Education</a>\n    </p>\n    <p class=\"brand vcard\">From: \n        <span class=\"fn org\">The Raspberry Pi Foundation</span> - \n        <span class=\"adr\">\n            <span class=\"locality\">Cambridge</span> \n            <span class=\"country-name\">UK</span>\n        </span>\n    </p>\n</div>";
-   var expected = {"items":[{"type":["h-product"],"properties":{"name":["Raspberry Pi"],"photo":["http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/RaspberryPi.jpg/320px-RaspberryPi.jpg"],"description":[{"value":"The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming.","html":"The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming."}],"url":["http://www.raspberrypi.org/"],"price":["£29.95"],"review":[{"value":"9.2 out of \n            10 \n            based on 178 reviews","type":["h-review-aggregate"],"properties":{"rating":["9.2"],"average":["9.2"],"best":["10"],"count":["178"]}}],"category":["Computer","Education"],"brand":[{"value":"The Raspberry Pi Foundation","type":["h-card"],"properties":{"name":["The Raspberry Pi Foundation"],"org":["The Raspberry Pi Foundation"],"adr":[{"value":"Cambridge \n            UK","type":["h-adr"],"properties":{"locality":["Cambridge"],"country-name":["UK"]}}]}}]}}],"rels":{"tag":["http://en.wikipedia.org/wiki/computer","http://en.wikipedia.org/wiki/education"]},"rel-urls":{"http://en.wikipedia.org/wiki/computer":{"text":"Computer","rels":["tag"]},"http://en.wikipedia.org/wiki/education":{"text":"Education","rels":["tag"]}}};
-
-   it('aggregate', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hproduct/aggregate
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hproduct', function() {
+   var htmlFragment = "<meta charset=\"utf-8\">\n<div class=\"hproduct\">\n    <h2 class=\"fn\">Raspberry Pi</h2>\n    <img class=\"photo\" src=\"http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/RaspberryPi.jpg/320px-RaspberryPi.jpg\" />\n    <p class=\"description\">The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming.</p>\n    <a class=\"url\" href=\"http://www.raspberrypi.org/\">More info about the Raspberry Pi</a>\n    <p class=\"price\">£29.95</p>\n    <p class=\"review hreview-aggregate\">\n        <span class=\"rating\">\n            <span class=\"average value\">9.2</span> out of \n            <span class=\"best\">10</span> \n            based on <span class=\"count\">178</span> reviews\n        </span>\n    </p>\n    <p>Categories: \n        <a rel=\"tag\" href=\"http://en.wikipedia.org/wiki/computer\" class=\"category\">Computer</a>, \n        <a rel=\"tag\" href=\"http://en.wikipedia.org/wiki/education\" class=\"category\">Education</a>\n    </p>\n    <p class=\"brand vcard\">From: \n        <span class=\"fn org\">The Raspberry Pi Foundation</span> - \n        <span class=\"adr\">\n            <span class=\"locality\">Cambridge</span> \n            <span class=\"country-name\">UK</span>\n        </span>\n    </p>\n</div>";
+   var expected = {"items":[{"type":["h-product"],"properties":{"name":["Raspberry Pi"],"photo":["http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/RaspberryPi.jpg/320px-RaspberryPi.jpg"],"description":[{"value":"The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming.","html":"The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming."}],"url":["http://www.raspberrypi.org/"],"price":["£29.95"],"review":[{"value":"9.2 out of \n            10 \n            based on 178 reviews","type":["h-review-aggregate"],"properties":{"rating":["9.2"],"average":["9.2"],"best":["10"],"count":["178"]}}],"category":["Computer","Education"],"brand":[{"value":"The Raspberry Pi Foundation","type":["h-card"],"properties":{"name":["The Raspberry Pi Foundation"],"org":["The Raspberry Pi Foundation"],"adr":[{"value":"Cambridge \n            UK","type":["h-adr"],"properties":{"locality":["Cambridge"],"country-name":["UK"]}}]}}]}}],"rels":{"tag":["http://en.wikipedia.org/wiki/computer","http://en.wikipedia.org/wiki/education"]},"rel-urls":{"http://en.wikipedia.org/wiki/computer":{"text":"Computer","rels":["tag"]},"http://en.wikipedia.org/wiki/education":{"text":"Education","rels":["tag"]}}};
+
+   it('aggregate', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hproduct-simpleproperties.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hproduct-simpleproperties.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hproduct/simpleproperties
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hproduct', function() {
-   var htmlFragment = "<meta charset=\"utf-8\">\n<div class=\"hproduct\">\n    <h2 class=\"fn\">Raspberry Pi</h2>\n    <img class=\"photo\" src=\"http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/RaspberryPi.jpg/320px-RaspberryPi.jpg\" />\n    <p class=\"description\">The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming.</p>\n    <a class=\"url\" href=\"http://www.raspberrypi.org/\">More info about the Raspberry Pi</a>\n    <p class=\"price\">£29.95</p>\n    <p class=\"review hreview\"><span class=\"rating\">4.5</span> out of 5</p>\n    <p>Categories: \n        <a rel=\"tag\" href=\"http://en.wikipedia.org/wiki/computer\" class=\"category\">Computer</a>, \n        <a rel=\"tag\" href=\"http://en.wikipedia.org/wiki/education\" class=\"category\">Education</a>\n    </p>\n</div>";
-   var expected = {"items":[{"type":["h-product"],"properties":{"name":["Raspberry Pi"],"photo":["http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/RaspberryPi.jpg/320px-RaspberryPi.jpg"],"description":[{"value":"The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming.","html":"The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming."}],"url":["http://www.raspberrypi.org/"],"price":["£29.95"],"category":["Computer","Education"],"review":[{"value":"4.5 out of 5","type":["h-review"],"properties":{"rating":["4.5"]}}]}}],"rels":{"tag":["http://en.wikipedia.org/wiki/computer","http://en.wikipedia.org/wiki/education"]},"rel-urls":{"http://en.wikipedia.org/wiki/computer":{"text":"Computer","rels":["tag"]},"http://en.wikipedia.org/wiki/education":{"text":"Education","rels":["tag"]}}};
-
-   it('simpleproperties', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hproduct/simpleproperties
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hproduct', function() {
+   var htmlFragment = "<meta charset=\"utf-8\">\n<div class=\"hproduct\">\n    <h2 class=\"fn\">Raspberry Pi</h2>\n    <img class=\"photo\" src=\"http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/RaspberryPi.jpg/320px-RaspberryPi.jpg\" />\n    <p class=\"description\">The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming.</p>\n    <a class=\"url\" href=\"http://www.raspberrypi.org/\">More info about the Raspberry Pi</a>\n    <p class=\"price\">£29.95</p>\n    <p class=\"review hreview\"><span class=\"rating\">4.5</span> out of 5</p>\n    <p>Categories: \n        <a rel=\"tag\" href=\"http://en.wikipedia.org/wiki/computer\" class=\"category\">Computer</a>, \n        <a rel=\"tag\" href=\"http://en.wikipedia.org/wiki/education\" class=\"category\">Education</a>\n    </p>\n</div>";
+   var expected = {"items":[{"type":["h-product"],"properties":{"name":["Raspberry Pi"],"photo":["http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/RaspberryPi.jpg/320px-RaspberryPi.jpg"],"description":[{"value":"The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming.","html":"The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming."}],"url":["http://www.raspberrypi.org/"],"price":["£29.95"],"category":["Computer","Education"],"review":[{"value":"4.5 out of 5","type":["h-review"],"properties":{"rating":["4.5"]}}]}}],"rels":{"tag":["http://en.wikipedia.org/wiki/computer","http://en.wikipedia.org/wiki/education"]},"rel-urls":{"http://en.wikipedia.org/wiki/computer":{"text":"Computer","rels":["tag"]},"http://en.wikipedia.org/wiki/education":{"text":"Education","rels":["tag"]}}};
+
+   it('simpleproperties', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hresume-affiliation.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hresume-affiliation.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hresume/affiliation
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hresume', function() {
-   var htmlFragment = "<div class=\"hresume\">\n    <p>\n        <span class=\"contact vcard\"><span class=\"fn\">Tim Berners-Lee</span></span>, \n        <span class=\"summary\">invented the World Wide Web</span>.\n    </p>\n    Belongs to following groups:\n    <p>   \n        <a class=\"affiliation vcard\" href=\"http://www.w3.org/\">\n            <img class=\"fn photo\" alt=\"W3C\" src=\"http://www.w3.org/Icons/WWW/w3c_home_nb.png\" />\n        </a>\n    </p>   \n</div>";
-   var expected = {"items":[{"type":["h-resume"],"properties":{"contact":[{"value":"Tim Berners-Lee","type":["h-card"],"properties":{"name":["Tim Berners-Lee"]}}],"summary":["invented the World Wide Web"],"affiliation":[{"type":["h-card"],"properties":{"name":["W3C"],"photo":["http://www.w3.org/Icons/WWW/w3c_home_nb.png"]}}]}}],"rels":{},"rel-urls":{}};
-
-   it('affiliation', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hresume/affiliation
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hresume', function() {
+   var htmlFragment = "<div class=\"hresume\">\n    <p>\n        <span class=\"contact vcard\"><span class=\"fn\">Tim Berners-Lee</span></span>, \n        <span class=\"summary\">invented the World Wide Web</span>.\n    </p>\n    Belongs to following groups:\n    <p>   \n        <a class=\"affiliation vcard\" href=\"http://www.w3.org/\">\n            <img class=\"fn photo\" alt=\"W3C\" src=\"http://www.w3.org/Icons/WWW/w3c_home_nb.png\" />\n        </a>\n    </p>   \n</div>";
+   var expected = {"items":[{"type":["h-resume"],"properties":{"contact":[{"value":"Tim Berners-Lee","type":["h-card"],"properties":{"name":["Tim Berners-Lee"]}}],"summary":["invented the World Wide Web"],"affiliation":[{"type":["h-card"],"properties":{"name":["W3C"],"photo":["http://www.w3.org/Icons/WWW/w3c_home_nb.png"]}}]}}],"rels":{},"rel-urls":{}};
+
+   it('affiliation', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hresume-contact.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hresume-contact.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hresume/contact
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hresume', function() {
-   var htmlFragment = "<div class=\"hresume\">\n    <div class=\"contact vcard\">\n        <p class=\"fn\">Tim Berners-Lee</p>\n        <p class=\"org\">MIT</p>\n        <p class=\"adr\">\n            <span class=\"street-address\">32 Vassar Street</span>, \n            <span class=\"extended-address\">Room 32-G524</span>, \n            <span class=\"locality\">Cambridge</span>,  \n            <span class=\"region\">MA</span> \n            <span class=\"postal-code\">02139</span>, \n            <span class=\"country-name\">USA</span>.  \n            (<span class=\"type\">Work</span>)\n        </p>\n        <p>Tel:<span class=\"tel\">+1 (617) 253 5702</span></p>\n        <p>Email:<a class=\"email\" href=\"mailto:timbl@w3.org\">timbl@w3.org</a></p>\n    </div>\n    <p class=\"summary\">Invented the World Wide Web.</p>\n</div>";
-   var expected = {"items":[{"type":["h-resume"],"properties":{"contact":[{"value":"Tim Berners-Lee","type":["h-card"],"properties":{"name":["Tim Berners-Lee"],"org":["MIT"],"adr":[{"value":"32 Vassar Street, \n            Room 32-G524, \n            Cambridge,  \n            MA \n            02139, \n            USA.  \n            (Work)","type":["h-adr"],"properties":{"street-address":["32 Vassar Street"],"extended-address":["Room 32-G524"],"locality":["Cambridge"],"region":["MA"],"postal-code":["02139"],"country-name":["USA"]}}],"tel":["+1 (617) 253 5702"],"email":["mailto:timbl@w3.org"]}}],"summary":["Invented the World Wide Web."]}}],"rels":{},"rel-urls":{}};
-
-   it('contact', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hresume/contact
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hresume', function() {
+   var htmlFragment = "<div class=\"hresume\">\n    <div class=\"contact vcard\">\n        <p class=\"fn\">Tim Berners-Lee</p>\n        <p class=\"org\">MIT</p>\n        <p class=\"adr\">\n            <span class=\"street-address\">32 Vassar Street</span>, \n            <span class=\"extended-address\">Room 32-G524</span>, \n            <span class=\"locality\">Cambridge</span>,  \n            <span class=\"region\">MA</span> \n            <span class=\"postal-code\">02139</span>, \n            <span class=\"country-name\">USA</span>.  \n            (<span class=\"type\">Work</span>)\n        </p>\n        <p>Tel:<span class=\"tel\">+1 (617) 253 5702</span></p>\n        <p>Email:<a class=\"email\" href=\"mailto:timbl@w3.org\">timbl@w3.org</a></p>\n    </div>\n    <p class=\"summary\">Invented the World Wide Web.</p>\n</div>";
+   var expected = {"items":[{"type":["h-resume"],"properties":{"contact":[{"value":"Tim Berners-Lee","type":["h-card"],"properties":{"name":["Tim Berners-Lee"],"org":["MIT"],"adr":[{"value":"32 Vassar Street, \n            Room 32-G524, \n            Cambridge,  \n            MA \n            02139, \n            USA.  \n            (Work)","type":["h-adr"],"properties":{"street-address":["32 Vassar Street"],"extended-address":["Room 32-G524"],"locality":["Cambridge"],"region":["MA"],"postal-code":["02139"],"country-name":["USA"]}}],"tel":["+1 (617) 253 5702"],"email":["mailto:timbl@w3.org"]}}],"summary":["Invented the World Wide Web."]}}],"rels":{},"rel-urls":{}};
+
+   it('contact', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hresume-education.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hresume-education.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hresume/education
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hresume', function() {
-   var htmlFragment = "<div class=\"hresume\">\n    <div class=\"contact vcard\">\n        <p class=\"fn\">Tim Berners-Lee</p>\n        <p class=\"title\">Director of the World Wide Web Foundation</p>\n    </div>\n    <p class=\"summary\">Invented the World Wide Web.</p><hr />\n    <p class=\"education vevent vcard\">\n        <span class=\"fn summary org\">The Queen's College, Oxford University</span>, \n        <span class=\"description\">BA Hons (I) Physics</span> \n        <time class=\"dtstart\" datetime=\"1973-09\">1973</time> –\n        <time class=\"dtend\" datetime=\"1976-06\">1976</time>\n    </p>\n</div>";
-   var expected = {"items":[{"type":["h-resume"],"properties":{"contact":[{"value":"Tim Berners-Lee","type":["h-card"],"properties":{"name":["Tim Berners-Lee"],"job-title":["Director of the World Wide Web Foundation"]}}],"summary":["Invented the World Wide Web."],"education":[{"value":"The Queen's College, Oxford University","type":["h-event","h-card"],"properties":{"name":["The Queen's College, Oxford University"],"org":["The Queen's College, Oxford University"],"description":["BA Hons (I) Physics"],"start":["1973-09"],"end":["1976-06"]}}]}}],"rels":{},"rel-urls":{}};
-
-   it('education', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hresume/education
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hresume', function() {
+   var htmlFragment = "<div class=\"hresume\">\n    <div class=\"contact vcard\">\n        <p class=\"fn\">Tim Berners-Lee</p>\n        <p class=\"title\">Director of the World Wide Web Foundation</p>\n    </div>\n    <p class=\"summary\">Invented the World Wide Web.</p><hr />\n    <p class=\"education vevent vcard\">\n        <span class=\"fn summary org\">The Queen's College, Oxford University</span>, \n        <span class=\"description\">BA Hons (I) Physics</span> \n        <time class=\"dtstart\" datetime=\"1973-09\">1973</time> –\n        <time class=\"dtend\" datetime=\"1976-06\">1976</time>\n    </p>\n</div>";
+   var expected = {"items":[{"type":["h-resume"],"properties":{"contact":[{"value":"Tim Berners-Lee","type":["h-card"],"properties":{"name":["Tim Berners-Lee"],"job-title":["Director of the World Wide Web Foundation"]}}],"summary":["Invented the World Wide Web."],"education":[{"value":"The Queen's College, Oxford University","type":["h-event","h-card"],"properties":{"name":["The Queen's College, Oxford University"],"org":["The Queen's College, Oxford University"],"description":["BA Hons (I) Physics"],"start":["1973-09"],"end":["1976-06"]}}]}}],"rels":{},"rel-urls":{}};
+
+   it('education', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hresume-skill.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hresume-skill.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hresume/skill
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hresume', function() {
-   var htmlFragment = "<div class=\"hresume\"> \n    <p>\n        <span class=\"contact vcard\"><span class=\"fn\">Tim Berners-Lee</span></span>, \n        <span class=\"summary\">invented the World Wide Web</span>.\n    </p>\n    Skills:     \n    <ul>\n        <li><a class=\"skill\" rel=\"tag\" href=\"http://example.com/skills/informationsystems\">information systems</a></li>\n        <li><a class=\"skill\" rel=\"tag\" href=\"http://example.com/skills/advocacy\">advocacy</a></li>\n        <li><a class=\"skill\" rel=\"tag\" href=\"http://example.com/skills/leadership\">leadership</a></li>\n    </ul>\n</div>";
-   var expected = {"items":[{"type":["h-resume"],"properties":{"contact":[{"value":"Tim Berners-Lee","type":["h-card"],"properties":{"name":["Tim Berners-Lee"]}}],"summary":["invented the World Wide Web"],"skill":["information systems","advocacy","leadership"]}}],"rels":{"tag":["http://example.com/skills/informationsystems","http://example.com/skills/advocacy","http://example.com/skills/leadership"]},"rel-urls":{"http://example.com/skills/informationsystems":{"text":"information systems","rels":["tag"]},"http://example.com/skills/advocacy":{"text":"advocacy","rels":["tag"]},"http://example.com/skills/leadership":{"text":"leadership","rels":["tag"]}}};
-
-   it('skill', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hresume/skill
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hresume', function() {
+   var htmlFragment = "<div class=\"hresume\"> \n    <p>\n        <span class=\"contact vcard\"><span class=\"fn\">Tim Berners-Lee</span></span>, \n        <span class=\"summary\">invented the World Wide Web</span>.\n    </p>\n    Skills:     \n    <ul>\n        <li><a class=\"skill\" rel=\"tag\" href=\"http://example.com/skills/informationsystems\">information systems</a></li>\n        <li><a class=\"skill\" rel=\"tag\" href=\"http://example.com/skills/advocacy\">advocacy</a></li>\n        <li><a class=\"skill\" rel=\"tag\" href=\"http://example.com/skills/leadership\">leadership</a></li>\n    </ul>\n</div>";
+   var expected = {"items":[{"type":["h-resume"],"properties":{"contact":[{"value":"Tim Berners-Lee","type":["h-card"],"properties":{"name":["Tim Berners-Lee"]}}],"summary":["invented the World Wide Web"],"skill":["information systems","advocacy","leadership"]}}],"rels":{"tag":["http://example.com/skills/informationsystems","http://example.com/skills/advocacy","http://example.com/skills/leadership"]},"rel-urls":{"http://example.com/skills/informationsystems":{"text":"information systems","rels":["tag"]},"http://example.com/skills/advocacy":{"text":"advocacy","rels":["tag"]},"http://example.com/skills/leadership":{"text":"leadership","rels":["tag"]}}};
+
+   it('skill', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hresume-work.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hresume-work.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hresume/work
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hresume', function() {
-   var htmlFragment = "<meta charset=\"utf-8\">\n<div class=\"hresume\">\n    <div class=\"contact vcard\">\n        <p class=\"fn\">Tim Berners-Lee</p>\n        <p class=\"title\">Director of the World Wide Web Foundation</p>\n    </div>\n    <p class=\"summary\">Invented the World Wide Web.</p><hr />\n    <div class=\"experience vevent vcard\">\n        <p class=\"title\">Director</p>\n        <p><a class=\"fn summary org url\" href=\"http://www.webfoundation.org/\">World Wide Web Foundation</a></p>\n        <p>\n            <time class=\"dtstart\" datetime=\"2009-01-18\">Jan 2009</time> – Present\n            <time class=\"duration\" datetime=\"P2Y11M\">(2 years 11 month)</time>\n        </p>\n    </div>\n</div>";
-   var expected = {"items":[{"type":["h-resume"],"properties":{"contact":[{"value":"Tim Berners-Lee","type":["h-card"],"properties":{"name":["Tim Berners-Lee"],"job-title":["Director of the World Wide Web Foundation"]}}],"summary":["Invented the World Wide Web."],"experience":[{"value":"World Wide Web Foundation","type":["h-event","h-card"],"properties":{"job-title":["Director"],"name":["World Wide Web Foundation"],"org":["World Wide Web Foundation"],"url":["http://www.webfoundation.org/"],"start":["2009-01-18"],"duration":["P2Y11M"]}}]}}],"rels":{},"rel-urls":{}};
-
-   it('work', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hresume/work
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hresume', function() {
+   var htmlFragment = "<meta charset=\"utf-8\">\n<div class=\"hresume\">\n    <div class=\"contact vcard\">\n        <p class=\"fn\">Tim Berners-Lee</p>\n        <p class=\"title\">Director of the World Wide Web Foundation</p>\n    </div>\n    <p class=\"summary\">Invented the World Wide Web.</p><hr />\n    <div class=\"experience vevent vcard\">\n        <p class=\"title\">Director</p>\n        <p><a class=\"fn summary org url\" href=\"http://www.webfoundation.org/\">World Wide Web Foundation</a></p>\n        <p>\n            <time class=\"dtstart\" datetime=\"2009-01-18\">Jan 2009</time> – Present\n            <time class=\"duration\" datetime=\"P2Y11M\">(2 years 11 month)</time>\n        </p>\n    </div>\n</div>";
+   var expected = {"items":[{"type":["h-resume"],"properties":{"contact":[{"value":"Tim Berners-Lee","type":["h-card"],"properties":{"name":["Tim Berners-Lee"],"job-title":["Director of the World Wide Web Foundation"]}}],"summary":["Invented the World Wide Web."],"experience":[{"value":"World Wide Web Foundation","type":["h-event","h-card"],"properties":{"job-title":["Director"],"name":["World Wide Web Foundation"],"org":["World Wide Web Foundation"],"url":["http://www.webfoundation.org/"],"start":["2009-01-18"],"duration":["P2Y11M"]}}]}}],"rels":{},"rel-urls":{}};
+
+   it('work', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hreview-aggregate-hcard.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hreview-aggregate-hcard.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hreview-aggregate/hcard
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hreview-aggregate', function() {
-   var htmlFragment = "<div class=\"hreview-aggregate\">\n    <div class=\"item vcard\">\n        <h3 class=\"fn org\">Mediterranean Wraps</h3>    \n        <p>\n            <span class=\"adr\">\n                <span class=\"street-address\">433 S California Ave</span>, \n                <span class=\"locality\">Palo Alto</span>, \n                <span class=\"region\">CA</span></span> - \n            \n            <span class=\"tel\">(650) 321-8189</span>\n        </p>\n    </div> \n    <p class=\"rating\">\n        <span class=\"average value\">9.2</span> out of \n        <span class=\"best\">10</span> \n        based on <span class=\"count\">17</span> reviews\n    </p>\n</div>";
-   var expected = {"items":[{"type":["h-review-aggregate"],"properties":{"item":[{"value":"Mediterranean Wraps","type":["h-item","h-card"],"properties":{"name":["Mediterranean Wraps"],"org":["Mediterranean Wraps"],"adr":[{"value":"433 S California Ave, \n                Palo Alto, \n                CA","type":["h-adr"],"properties":{"street-address":["433 S California Ave"],"locality":["Palo Alto"],"region":["CA"]}}],"tel":["(650) 321-8189"]}}],"rating":["9.2"],"average":["9.2"],"best":["10"],"count":["17"]}}],"rels":{},"rel-urls":{}};
-
-   it('hcard', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hreview-aggregate/hcard
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hreview-aggregate', function() {
+   var htmlFragment = "<div class=\"hreview-aggregate\">\n    <div class=\"item vcard\">\n        <h3 class=\"fn org\">Mediterranean Wraps</h3>    \n        <p>\n            <span class=\"adr\">\n                <span class=\"street-address\">433 S California Ave</span>, \n                <span class=\"locality\">Palo Alto</span>, \n                <span class=\"region\">CA</span></span> - \n            \n            <span class=\"tel\">(650) 321-8189</span>\n        </p>\n    </div> \n    <p class=\"rating\">\n        <span class=\"average value\">9.2</span> out of \n        <span class=\"best\">10</span> \n        based on <span class=\"count\">17</span> reviews\n    </p>\n</div>";
+   var expected = {"items":[{"type":["h-review-aggregate"],"properties":{"item":[{"value":"Mediterranean Wraps","type":["h-item","h-card"],"properties":{"name":["Mediterranean Wraps"],"org":["Mediterranean Wraps"],"adr":[{"value":"433 S California Ave, \n                Palo Alto, \n                CA","type":["h-adr"],"properties":{"street-address":["433 S California Ave"],"locality":["Palo Alto"],"region":["CA"]}}],"tel":["(650) 321-8189"]}}],"rating":["9.2"],"average":["9.2"],"best":["10"],"count":["17"]}}],"rels":{},"rel-urls":{}};
+
+   it('hcard', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hreview-aggregate-justahyperlink.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hreview-aggregate-justahyperlink.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hreview-aggregate/justahyperlink
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hreview-aggregate', function() {
-   var htmlFragment = "<p class=\"hreview-aggregate\">\n    <span class=\"item\">\n        <a class=\"fn url\" href=\"http://example.com/mediterraneanwraps\">Mediterranean Wraps</a>\n    </span> - Rated: \n    <span class=\"rating\">4.5</span> out of 5 (<span class=\"count\">6</span> reviews)\n</p>";
-   var expected = {"items":[{"type":["h-review-aggregate"],"properties":{"item":[{"value":"Mediterranean Wraps","type":["h-item"],"properties":{"name":["Mediterranean Wraps"],"url":["http://example.com/mediterraneanwraps"]}}],"rating":["4.5"],"count":["6"]}}],"rels":{},"rel-urls":{}};
-
-   it('justahyperlink', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hreview-aggregate/justahyperlink
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hreview-aggregate', function() {
+   var htmlFragment = "<p class=\"hreview-aggregate\">\n    <span class=\"item\">\n        <a class=\"fn url\" href=\"http://example.com/mediterraneanwraps\">Mediterranean Wraps</a>\n    </span> - Rated: \n    <span class=\"rating\">4.5</span> out of 5 (<span class=\"count\">6</span> reviews)\n</p>";
+   var expected = {"items":[{"type":["h-review-aggregate"],"properties":{"item":[{"value":"Mediterranean Wraps","type":["h-item"],"properties":{"name":["Mediterranean Wraps"],"url":["http://example.com/mediterraneanwraps"]}}],"rating":["4.5"],"count":["6"]}}],"rels":{},"rel-urls":{}};
+
+   it('justahyperlink', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hreview-aggregate-vevent.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hreview-aggregate-vevent.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hreview-aggregate/vevent
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hreview-aggregate', function() {
-   var htmlFragment = "<div class=\"hreview-aggregate\">\n    <div class=\"item vevent\">\n        <h3 class=\"summary\">Fullfrontal</h3>\n        <p class=\"description\">A one day JavaScript Conference held in Brighton</p>\n        <p><time class=\"dtstart\" datetime=\"2012-11-09\">9th November 2012</time></p>    \n    </div> \n    \n    <p class=\"rating\">\n        <span class=\"average value\">9.9</span> out of \n        <span class=\"best\">10</span> \n        based on <span class=\"count\">62</span> reviews\n    </p>\n</div>";
-   var expected = {"items":[{"type":["h-review-aggregate"],"properties":{"item":[{"value":"Fullfrontal","type":["h-item","h-event"],"properties":{"name":["Fullfrontal"],"description":["A one day JavaScript Conference held in Brighton"],"start":["2012-11-09"]}}],"rating":["9.9"],"average":["9.9"],"best":["10"],"count":["62"]}}],"rels":{},"rel-urls":{}};
-
-   it('vevent', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hreview-aggregate/vevent
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hreview-aggregate', function() {
+   var htmlFragment = "<div class=\"hreview-aggregate\">\n    <div class=\"item vevent\">\n        <h3 class=\"summary\">Fullfrontal</h3>\n        <p class=\"description\">A one day JavaScript Conference held in Brighton</p>\n        <p><time class=\"dtstart\" datetime=\"2012-11-09\">9th November 2012</time></p>    \n    </div> \n    \n    <p class=\"rating\">\n        <span class=\"average value\">9.9</span> out of \n        <span class=\"best\">10</span> \n        based on <span class=\"count\">62</span> reviews\n    </p>\n</div>";
+   var expected = {"items":[{"type":["h-review-aggregate"],"properties":{"item":[{"value":"Fullfrontal","type":["h-item","h-event"],"properties":{"name":["Fullfrontal"],"description":["A one day JavaScript Conference held in Brighton"],"start":["2012-11-09"]}}],"rating":["9.9"],"average":["9.9"],"best":["10"],"count":["62"]}}],"rels":{},"rel-urls":{}};
+
+   it('vevent', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hreview-item.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hreview-item.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hreview/item
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hreview', function() {
-   var htmlFragment = "<base href=\"http://example.com\">\n<div class=\"hreview\">\n    <p class=\"item\">\n        <img class=\"photo\" src=\"images/photo.gif\" />\n        <a class=\"fn url\" href=\"http://example.com/crepeoncole\">Crepes on Cole</a>\n    </p>\n    <p><span class=\"rating\">5</span> out of 5 stars</p>\n</div>";
-   var expected = {"items":[{"type":["h-review"],"properties":{"item":[{"value":"Crepes on Cole","type":["h-item"],"properties":{"photo":["http://example.com/images/photo.gif"],"name":["Crepes on Cole"],"url":["http://example.com/crepeoncole"]}}],"rating":["5"]}}],"rels":{},"rel-urls":{}};
-
-   it('item', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hreview/item
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hreview', function() {
+   var htmlFragment = "<base href=\"http://example.com\">\n<div class=\"hreview\">\n    <p class=\"item\">\n        <img class=\"photo\" src=\"images/photo.gif\" />\n        <a class=\"fn url\" href=\"http://example.com/crepeoncole\">Crepes on Cole</a>\n    </p>\n    <p><span class=\"rating\">5</span> out of 5 stars</p>\n</div>";
+   var expected = {"items":[{"type":["h-review"],"properties":{"item":[{"value":"Crepes on Cole","type":["h-item"],"properties":{"photo":["http://example.com/images/photo.gif"],"name":["Crepes on Cole"],"url":["http://example.com/crepeoncole"]}}],"rating":["5"]}}],"rels":{},"rel-urls":{}};
+
+   it('item', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-hreview-vcard.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-hreview-vcard.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/hreview/vcard
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('hreview', function() {
-   var htmlFragment = "<div class=\"hreview\">\n    <span><span class=\"rating\">5</span> out of 5 stars</span>\n    <h4 class=\"summary\">Crepes on Cole is awesome</h4>\n    <span class=\"reviewer vcard\">\n        Reviewer: <span class=\"fn\">Tantek</span> - \n    </span>\n    <time class=\"reviewed\" datetime=\"2005-04-18\">April 18, 2005</time>\n    <div class=\"description\">\n        <p class=\"item vcard\">\n        <span class=\"fn org\">Crepes on Cole</span> is one of the best little \n        creperies in <span class=\"adr\"><span class=\"locality\">San Francisco</span></span>.\n        Excellent food and service. Plenty of tables in a variety of sizes \n        for parties large and small.  Window seating makes for excellent \n        people watching to/from the N-Judah which stops right outside.  \n        I've had many fun social gatherings here, as well as gotten \n        plenty of work done thanks to neighborhood WiFi.\n        </p>\n    </div>\n    <p>Visit date: <span>April 2005</span></p>\n    <p>Food eaten: <a rel=\"tag\" href=\"http://en.wikipedia.org/wiki/crepe\">crepe</a></p>\n    <p>Permanent link for review: <a rel=\"self bookmark\" href=\"http://example.com/crepe\">http://example.com/crepe</a></p>\n    <p><a rel=\"license\" href=\"http://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License\">Creative Commons Attribution-ShareAlike License</a></p>\n</div>";
-   var expected = {"items":[{"type":["h-review"],"properties":{"rating":["5"],"name":["Crepes on Cole is awesome"],"reviewer":[{"value":"Tantek","type":["h-card"],"properties":{"name":["Tantek"]}}],"description":[{"value":"Crepes on Cole is one of the best little \n        creperies in San Francisco.\n        Excellent food and service. Plenty of tables in a variety of sizes \n        for parties large and small.  Window seating makes for excellent \n        people watching to/from the N-Judah which stops right outside.  \n        I've had many fun social gatherings here, as well as gotten \n        plenty of work done thanks to neighborhood WiFi.","html":"\n        <p class=\"item vcard\">\n        <span class=\"fn org\">Crepes on Cole</span> is one of the best little \n        creperies in <span class=\"adr\"><span class=\"locality\">San Francisco</span></span>.\n        Excellent food and service. Plenty of tables in a variety of sizes \n        for parties large and small.  Window seating makes for excellent \n        people watching to/from the N-Judah which stops right outside.  \n        I've had many fun social gatherings here, as well as gotten \n        plenty of work done thanks to neighborhood WiFi.\n        </p>\n    "}],"item":[{"value":"Crepes on Cole","type":["h-item","h-card"],"properties":{"name":["Crepes on Cole"],"org":["Crepes on Cole"],"adr":[{"value":"San Francisco","type":["h-adr"],"properties":{"locality":["San Francisco"]}}]}}],"category":["crepe"],"url":["http://example.com/crepe"]}}],"rels":{"tag":["http://en.wikipedia.org/wiki/crepe"],"self":["http://example.com/crepe"],"bookmark":["http://example.com/crepe"],"license":["http://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License"]},"rel-urls":{"http://en.wikipedia.org/wiki/crepe":{"text":"crepe","rels":["tag"]},"http://example.com/crepe":{"text":"http://example.com/crepe","rels":["self","bookmark"]},"http://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License":{"text":"Creative Commons Attribution-ShareAlike License","rels":["license"]}}};
-
-   it('vcard', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/hreview/vcard
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('hreview', function() {
+   var htmlFragment = "<div class=\"hreview\">\n    <span><span class=\"rating\">5</span> out of 5 stars</span>\n    <h4 class=\"summary\">Crepes on Cole is awesome</h4>\n    <span class=\"reviewer vcard\">\n        Reviewer: <span class=\"fn\">Tantek</span> - \n    </span>\n    <time class=\"reviewed\" datetime=\"2005-04-18\">April 18, 2005</time>\n    <div class=\"description\">\n        <p class=\"item vcard\">\n        <span class=\"fn org\">Crepes on Cole</span> is one of the best little \n        creperies in <span class=\"adr\"><span class=\"locality\">San Francisco</span></span>.\n        Excellent food and service. Plenty of tables in a variety of sizes \n        for parties large and small.  Window seating makes for excellent \n        people watching to/from the N-Judah which stops right outside.  \n        I've had many fun social gatherings here, as well as gotten \n        plenty of work done thanks to neighborhood WiFi.\n        </p>\n    </div>\n    <p>Visit date: <span>April 2005</span></p>\n    <p>Food eaten: <a rel=\"tag\" href=\"http://en.wikipedia.org/wiki/crepe\">crepe</a></p>\n    <p>Permanent link for review: <a rel=\"self bookmark\" href=\"http://example.com/crepe\">http://example.com/crepe</a></p>\n    <p><a rel=\"license\" href=\"http://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License\">Creative Commons Attribution-ShareAlike License</a></p>\n</div>";
+   var expected = {"items":[{"type":["h-review"],"properties":{"rating":["5"],"name":["Crepes on Cole is awesome"],"reviewer":[{"value":"Tantek","type":["h-card"],"properties":{"name":["Tantek"]}}],"description":[{"value":"Crepes on Cole is one of the best little \n        creperies in San Francisco.\n        Excellent food and service. Plenty of tables in a variety of sizes \n        for parties large and small.  Window seating makes for excellent \n        people watching to/from the N-Judah which stops right outside.  \n        I've had many fun social gatherings here, as well as gotten \n        plenty of work done thanks to neighborhood WiFi.","html":"\n        <p class=\"item vcard\">\n        <span class=\"fn org\">Crepes on Cole</span> is one of the best little \n        creperies in <span class=\"adr\"><span class=\"locality\">San Francisco</span></span>.\n        Excellent food and service. Plenty of tables in a variety of sizes \n        for parties large and small.  Window seating makes for excellent \n        people watching to/from the N-Judah which stops right outside.  \n        I've had many fun social gatherings here, as well as gotten \n        plenty of work done thanks to neighborhood WiFi.\n        </p>\n    "}],"item":[{"value":"Crepes on Cole","type":["h-item","h-card"],"properties":{"name":["Crepes on Cole"],"org":["Crepes on Cole"],"adr":[{"value":"San Francisco","type":["h-adr"],"properties":{"locality":["San Francisco"]}}]}}],"category":["crepe"],"url":["http://example.com/crepe"]}}],"rels":{"tag":["http://en.wikipedia.org/wiki/crepe"],"self":["http://example.com/crepe"],"bookmark":["http://example.com/crepe"],"license":["http://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License"]},"rel-urls":{"http://en.wikipedia.org/wiki/crepe":{"text":"crepe","rels":["tag"]},"http://example.com/crepe":{"text":"http://example.com/crepe","rels":["self","bookmark"]},"http://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License":{"text":"Creative Commons Attribution-ShareAlike License","rels":["license"]}}};
+
+   it('vcard', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-includes-hcarditemref.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-includes-hcarditemref.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/includes/hcarditemref
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('includes', function() {
-   var htmlFragment = "<div class=\"vcard\" itemref=\"mozilla-org mozilla-adr\">\n    <span class=\"name\">Brendan Eich</span>\n</div>\n<div class=\"vcard\" itemref=\"mozilla-org mozilla-adr\">\n    <span class=\"name\">Mitchell Baker</span>\n</div>\n\n<p id=\"mozilla-org\" class=\"org\">Mozilla</p>\n<p id=\"mozilla-adr\" class=\"adr\">\n    <span class=\"street-address\">665 3rd St.</span>  \n    <span class=\"extended-address\">Suite 207</span>  \n    <span class=\"locality\">San Francisco</span>,  \n    <span class=\"region\">CA</span>  \n    <span class=\"postal-code\">94107</span>  \n    <span class=\"country-name\">U.S.A.</span>  \n</p>";
-   var expected = {"items":[{"type":["h-card"],"properties":{"org":["Mozilla"],"adr":[{"value":"665 3rd St.  \n    Suite 207  \n    San Francisco,  \n    CA  \n    94107  \n    U.S.A.","type":["h-adr"],"properties":{"street-address":["665 3rd St."],"extended-address":["Suite 207"],"locality":["San Francisco"],"region":["CA"],"postal-code":["94107"],"country-name":["U.S.A."]}}]}},{"type":["h-card"],"properties":{"org":["Mozilla"],"adr":[{"value":"665 3rd St.  \n    Suite 207  \n    San Francisco,  \n    CA  \n    94107  \n    U.S.A.","type":["h-adr"],"properties":{"street-address":["665 3rd St."],"extended-address":["Suite 207"],"locality":["San Francisco"],"region":["CA"],"postal-code":["94107"],"country-name":["U.S.A."]}}]}},{"type":["h-adr"],"properties":{"street-address":["665 3rd St."],"extended-address":["Suite 207"],"locality":["San Francisco"],"region":["CA"],"postal-code":["94107"],"country-name":["U.S.A."]}}],"rels":{},"rel-urls":{}};
-
-   it('hcarditemref', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/includes/hcarditemref
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('includes', function() {
+   var htmlFragment = "<div class=\"vcard\" itemref=\"mozilla-org mozilla-adr\">\n    <span class=\"name\">Brendan Eich</span>\n</div>\n<div class=\"vcard\" itemref=\"mozilla-org mozilla-adr\">\n    <span class=\"name\">Mitchell Baker</span>\n</div>\n\n<p id=\"mozilla-org\" class=\"org\">Mozilla</p>\n<p id=\"mozilla-adr\" class=\"adr\">\n    <span class=\"street-address\">665 3rd St.</span>  \n    <span class=\"extended-address\">Suite 207</span>  \n    <span class=\"locality\">San Francisco</span>,  \n    <span class=\"region\">CA</span>  \n    <span class=\"postal-code\">94107</span>  \n    <span class=\"country-name\">U.S.A.</span>  \n</p>";
+   var expected = {"items":[{"type":["h-card"],"properties":{"org":["Mozilla"],"adr":[{"value":"665 3rd St.  \n    Suite 207  \n    San Francisco,  \n    CA  \n    94107  \n    U.S.A.","type":["h-adr"],"properties":{"street-address":["665 3rd St."],"extended-address":["Suite 207"],"locality":["San Francisco"],"region":["CA"],"postal-code":["94107"],"country-name":["U.S.A."]}}]}},{"type":["h-card"],"properties":{"org":["Mozilla"],"adr":[{"value":"665 3rd St.  \n    Suite 207  \n    San Francisco,  \n    CA  \n    94107  \n    U.S.A.","type":["h-adr"],"properties":{"street-address":["665 3rd St."],"extended-address":["Suite 207"],"locality":["San Francisco"],"region":["CA"],"postal-code":["94107"],"country-name":["U.S.A."]}}]}},{"type":["h-adr"],"properties":{"street-address":["665 3rd St."],"extended-address":["Suite 207"],"locality":["San Francisco"],"region":["CA"],"postal-code":["94107"],"country-name":["U.S.A."]}}],"rels":{},"rel-urls":{}};
+
+   it('hcarditemref', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-includes-heventitemref.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-includes-heventitemref.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/includes/heventitemref
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('includes', function() {
-   var htmlFragment = "<div class=\"vevent\" itemref=\"io-session07\">\n    <span class=\"name\">Monetizing Android Apps</span> - spaekers: \n    <span class=\"speaker\">Chrix Finne</span>, \n    <span class=\"speaker\">Kenneth Lui</span> - \n    <span itemref=\"io-location\" class=\"location adr\">\n        <span class=\"extended-address\">Room 10</span>\n    </span>  \n</div>\n<div class=\"vevent\" itemref=\"io-session07\">\n    <span class=\"name\">New Low-Level Media APIs in Android</span> - spaekers: \n    <span class=\"speaker\">Dave Burke</span> -\n    <span itemref=\"io-location\" class=\"location adr\">\n        <span class=\"extended-address\">Room 11</span>\n    </span>  \n</div>\n\n<p id=\"io-session07\">\n    Session 01 is between: \n    <time class=\"dtstart\" datetime=\"2012-06-27T15:45:00-0800\">3:45PM</time> to \n    <time class=\"dtend\" datetime=\"2012-06-27T16:45:00-0800\">4:45PM</time> \n</p>   \n<p id=\"io-location\">\n    <span class=\"extended-address\">Moscone Center</span>,   \n    <span class=\"locality\">San Francisco</span>  \n</p>";
-   var expected = {"items":[{"type":["h-event"],"properties":{"location":[{"value":"Room 10\n    \n    Moscone Center,   \n    San Francisco","type":["h-adr"],"properties":{"extended-address":["Room 10","Moscone Center"],"locality":["San Francisco"]}}],"start":["2012-06-27 15:45:00-08:00"],"end":["2012-06-27 16:45:00-08:00"]}},{"type":["h-event"],"properties":{"location":[{"value":"Room 11\n    \n    Moscone Center,   \n    San Francisco","type":["h-adr"],"properties":{"extended-address":["Room 11","Moscone Center"],"locality":["San Francisco"]}}],"start":["2012-06-27 15:45:00-08:00"],"end":["2012-06-27 16:45:00-08:00"]}}],"rels":{},"rel-urls":{}};
-
-   it('heventitemref', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/includes/heventitemref
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('includes', function() {
+   var htmlFragment = "<div class=\"vevent\" itemref=\"io-session07\">\n    <span class=\"name\">Monetizing Android Apps</span> - spaekers: \n    <span class=\"speaker\">Chrix Finne</span>, \n    <span class=\"speaker\">Kenneth Lui</span> - \n    <span itemref=\"io-location\" class=\"location adr\">\n        <span class=\"extended-address\">Room 10</span>\n    </span>  \n</div>\n<div class=\"vevent\" itemref=\"io-session07\">\n    <span class=\"name\">New Low-Level Media APIs in Android</span> - spaekers: \n    <span class=\"speaker\">Dave Burke</span> -\n    <span itemref=\"io-location\" class=\"location adr\">\n        <span class=\"extended-address\">Room 11</span>\n    </span>  \n</div>\n\n<p id=\"io-session07\">\n    Session 01 is between: \n    <time class=\"dtstart\" datetime=\"2012-06-27T15:45:00-0800\">3:45PM</time> to \n    <time class=\"dtend\" datetime=\"2012-06-27T16:45:00-0800\">4:45PM</time> \n</p>   \n<p id=\"io-location\">\n    <span class=\"extended-address\">Moscone Center</span>,   \n    <span class=\"locality\">San Francisco</span>  \n</p>";
+   var expected = {"items":[{"type":["h-event"],"properties":{"location":[{"value":"Room 10\n    \n    Moscone Center,   \n    San Francisco","type":["h-adr"],"properties":{"extended-address":["Room 10","Moscone Center"],"locality":["San Francisco"]}}],"start":["2012-06-27 15:45:00-08:00"],"end":["2012-06-27 16:45:00-08:00"]}},{"type":["h-event"],"properties":{"location":[{"value":"Room 11\n    \n    Moscone Center,   \n    San Francisco","type":["h-adr"],"properties":{"extended-address":["Room 11","Moscone Center"],"locality":["San Francisco"]}}],"start":["2012-06-27 15:45:00-08:00"],"end":["2012-06-27 16:45:00-08:00"]}}],"rels":{},"rel-urls":{}};
+
+   it('heventitemref', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-includes-hyperlink.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-includes-hyperlink.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/includes/hyperlink
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('includes', function() {
-   var htmlFragment = "<div class=\"vcard\">\n    <span class=\"name\">Ben Ward</span>\n    <a class=\"include\" href=\"#twitter\">Twitter</a>\n</div>\n<div class=\"vcard\">\n    <span class=\"name\">Dan Webb</span>\n    <a class=\"include\" href=\"#twitter\">Twitter</a>\n</div>\n\n<div id=\"twitter\">\n    <p class=\"org\">Twitter</p>\n    <p class=\"adr\">\n        <span class=\"street-address\">1355 Market St</span>,\n        <span class=\"locality\">San Francisco</span>, \n        <span class=\"region\">CA</span>\n        <span class=\"postal-code\">94103</span>\n    </p>\n</div>";
-   var expected = {"items":[{"type":["h-card"],"properties":{"org":["Twitter"],"adr":[{"value":"1355 Market St,\n        San Francisco, \n        CA\n        94103","type":["h-adr"],"properties":{"street-address":["1355 Market St"],"locality":["San Francisco"],"region":["CA"],"postal-code":["94103"]}}]}},{"type":["h-card"],"properties":{"org":["Twitter"],"adr":[{"value":"1355 Market St,\n        San Francisco, \n        CA\n        94103","type":["h-adr"],"properties":{"street-address":["1355 Market St"],"locality":["San Francisco"],"region":["CA"],"postal-code":["94103"]}}]}},{"type":["h-adr"],"properties":{"street-address":["1355 Market St"],"locality":["San Francisco"],"region":["CA"],"postal-code":["94103"]}}],"rels":{},"rel-urls":{}};
-
-   it('hyperlink', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/includes/hyperlink
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('includes', function() {
+   var htmlFragment = "<div class=\"vcard\">\n    <span class=\"name\">Ben Ward</span>\n    <a class=\"include\" href=\"#twitter\">Twitter</a>\n</div>\n<div class=\"vcard\">\n    <span class=\"name\">Dan Webb</span>\n    <a class=\"include\" href=\"#twitter\">Twitter</a>\n</div>\n\n<div id=\"twitter\">\n    <p class=\"org\">Twitter</p>\n    <p class=\"adr\">\n        <span class=\"street-address\">1355 Market St</span>,\n        <span class=\"locality\">San Francisco</span>, \n        <span class=\"region\">CA</span>\n        <span class=\"postal-code\">94103</span>\n    </p>\n</div>";
+   var expected = {"items":[{"type":["h-card"],"properties":{"org":["Twitter"],"adr":[{"value":"1355 Market St,\n        San Francisco, \n        CA\n        94103","type":["h-adr"],"properties":{"street-address":["1355 Market St"],"locality":["San Francisco"],"region":["CA"],"postal-code":["94103"]}}]}},{"type":["h-card"],"properties":{"org":["Twitter"],"adr":[{"value":"1355 Market St,\n        San Francisco, \n        CA\n        94103","type":["h-adr"],"properties":{"street-address":["1355 Market St"],"locality":["San Francisco"],"region":["CA"],"postal-code":["94103"]}}]}},{"type":["h-adr"],"properties":{"street-address":["1355 Market St"],"locality":["San Francisco"],"region":["CA"],"postal-code":["94103"]}}],"rels":{},"rel-urls":{}};
+
+   it('hyperlink', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-includes-object.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-includes-object.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/includes/object
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('includes', function() {
-   var htmlFragment = "<div class=\"vevent\">\n    <span class=\"name\">HTML5 & CSS3 latest features in action!</span> - \n    <span class=\"speaker\">David Rousset</span> -\n    <time class=\"dtstart\" datetime=\"2012-10-30T11:45:00-08:00\">Tue 11:45am</time>\n    <object data=\"#buildconf\" class=\"include\" type=\"text/html\" height=\"0\" width=\"0\"></object>\n</div>\n<div class=\"vevent\">\n    <span class=\"name\">Building High-Performing JavaScript for Modern Engines</span> -\n    <span class=\"speaker\">John-David Dalton</span> and \n    <span class=\"speaker\">Amanda Silver</span> -\n    <time class=\"dtstart\" datetime=\"2012-10-31T11:15:00-08:00\">Wed 11:15am</time>\n    <object data=\"#buildconf\" class=\"include\" type=\"text/html\" height=\"0\" width=\"0\"></object>\n</div>\n\n\n<div id=\"buildconf\">\n    <p class=\"summary\">Build Conference</p>\n    <p class=\"location adr\">\n        <span class=\"locality\">Redmond</span>, \n        <span class=\"region\">Washington</span>, \n        <span class=\"country-name\">USA</span>\n    </p>\n</div>";
-   var expected = {"items":[{"type":["h-event"],"properties":{"start":["2012-10-30 11:45:00-08:00"],"name":["Build Conference"],"location":[{"value":"Redmond, \n        Washington, \n        USA","type":["h-adr"],"properties":{"locality":["Redmond"],"region":["Washington"],"country-name":["USA"]}}]}},{"type":["h-event"],"properties":{"start":["2012-10-31 11:15:00-08:00"],"name":["Build Conference"],"location":[{"value":"Redmond, \n        Washington, \n        USA","type":["h-adr"],"properties":{"locality":["Redmond"],"region":["Washington"],"country-name":["USA"]}}]}},{"type":["h-adr"],"properties":{"locality":["Redmond"],"region":["Washington"],"country-name":["USA"]}}],"rels":{},"rel-urls":{}};
-
-   it('object', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/includes/object
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('includes', function() {
+   var htmlFragment = "<div class=\"vevent\">\n    <span class=\"name\">HTML5 & CSS3 latest features in action!</span> - \n    <span class=\"speaker\">David Rousset</span> -\n    <time class=\"dtstart\" datetime=\"2012-10-30T11:45:00-08:00\">Tue 11:45am</time>\n    <object data=\"#buildconf\" class=\"include\" type=\"text/html\" height=\"0\" width=\"0\"></object>\n</div>\n<div class=\"vevent\">\n    <span class=\"name\">Building High-Performing JavaScript for Modern Engines</span> -\n    <span class=\"speaker\">John-David Dalton</span> and \n    <span class=\"speaker\">Amanda Silver</span> -\n    <time class=\"dtstart\" datetime=\"2012-10-31T11:15:00-08:00\">Wed 11:15am</time>\n    <object data=\"#buildconf\" class=\"include\" type=\"text/html\" height=\"0\" width=\"0\"></object>\n</div>\n\n\n<div id=\"buildconf\">\n    <p class=\"summary\">Build Conference</p>\n    <p class=\"location adr\">\n        <span class=\"locality\">Redmond</span>, \n        <span class=\"region\">Washington</span>, \n        <span class=\"country-name\">USA</span>\n    </p>\n</div>";
+   var expected = {"items":[{"type":["h-event"],"properties":{"start":["2012-10-30 11:45:00-08:00"],"name":["Build Conference"],"location":[{"value":"Redmond, \n        Washington, \n        USA","type":["h-adr"],"properties":{"locality":["Redmond"],"region":["Washington"],"country-name":["USA"]}}]}},{"type":["h-event"],"properties":{"start":["2012-10-31 11:15:00-08:00"],"name":["Build Conference"],"location":[{"value":"Redmond, \n        Washington, \n        USA","type":["h-adr"],"properties":{"locality":["Redmond"],"region":["Washington"],"country-name":["USA"]}}]}},{"type":["h-adr"],"properties":{"locality":["Redmond"],"region":["Washington"],"country-name":["USA"]}}],"rels":{},"rel-urls":{}};
+
+   it('object', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v1-includes-table.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v1-includes-table.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v1/includes/table
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('includes', function() {
-   var htmlFragment = "<meta charset=\"utf-8\">\n<table>\n    <tr>\n        <th id=\"org\"><a class=\"url org\" href=\"http://dev.opera.com/\">Opera</a></th>\n    </tr>\n    <tr>\n        <td class=\"vcard\" headers=\"org\"><span class=\"fn\">Chris Mills</span></td>\n    </tr>\n    <tr>\n        <td class=\"vcard\" headers=\"org\"><span class=\"fn\">Erik Möller</span></td>\n    </tr>\n  </table>";
-   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Chris Mills"],"url":["http://dev.opera.com/"],"org":["Opera"]}},{"type":["h-card"],"properties":{"name":["Erik Möller"],"url":["http://dev.opera.com/"],"org":["Opera"]}}],"rels":{},"rel-urls":{}};
-
-   it('table', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v1/includes/table
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('includes', function() {
+   var htmlFragment = "<meta charset=\"utf-8\">\n<table>\n    <tr>\n        <th id=\"org\"><a class=\"url org\" href=\"http://dev.opera.com/\">Opera</a></th>\n    </tr>\n    <tr>\n        <td class=\"vcard\" headers=\"org\"><span class=\"fn\">Chris Mills</span></td>\n    </tr>\n    <tr>\n        <td class=\"vcard\" headers=\"org\"><span class=\"fn\">Erik Möller</span></td>\n    </tr>\n  </table>";
+   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Chris Mills"],"url":["http://dev.opera.com/"],"org":["Opera"]}},{"type":["h-card"],"properties":{"name":["Erik Möller"],"url":["http://dev.opera.com/"],"org":["Opera"]}}],"rels":{},"rel-urls":{}};
+
+   it('table', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-adr-geo.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-adr-geo.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-adr/geo
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-adr', function() {
-   var htmlFragment = "<p class=\"h-adr\">\n    <span class=\"p-name\">Bricklayer's Arms</span>\n    <span class=\"p-label\"> \n        <span class=\"p-street-address\">3 Charlotte Road</span>,  \n        <span class=\"p-locality\">City of London</span>,  \n        <span class=\"p-postal-code\">EC2A 3PE</span>, \n        <span class=\"p-country-name\">UK</span> \n    </span> – \n    Geo:(<span class=\"p-geo\">51.526421;-0.081067</span>) \n</p>";
-   var expected = {"items":[{"type":["h-adr"],"properties":{"name":["Bricklayer's Arms"],"label":["3 Charlotte Road,  \n        City of London,  \n        EC2A 3PE, \n        UK"],"street-address":["3 Charlotte Road"],"locality":["City of London"],"postal-code":["EC2A 3PE"],"country-name":["UK"],"geo":["51.526421;-0.081067"]}}],"rels":{},"rel-urls":{}};
-
-   it('geo', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-adr/geo
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-adr', function() {
+   var htmlFragment = "<p class=\"h-adr\">\n    <span class=\"p-name\">Bricklayer's Arms</span>\n    <span class=\"p-label\"> \n        <span class=\"p-street-address\">3 Charlotte Road</span>,  \n        <span class=\"p-locality\">City of London</span>,  \n        <span class=\"p-postal-code\">EC2A 3PE</span>, \n        <span class=\"p-country-name\">UK</span> \n    </span> – \n    Geo:(<span class=\"p-geo\">51.526421;-0.081067</span>) \n</p>";
+   var expected = {"items":[{"type":["h-adr"],"properties":{"name":["Bricklayer's Arms"],"label":["3 Charlotte Road,  \n        City of London,  \n        EC2A 3PE, \n        UK"],"street-address":["3 Charlotte Road"],"locality":["City of London"],"postal-code":["EC2A 3PE"],"country-name":["UK"],"geo":["51.526421;-0.081067"]}}],"rels":{},"rel-urls":{}};
+
+   it('geo', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-adr-geourl.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-adr-geourl.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-adr/geourl
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-adr', function() {
-   var htmlFragment = "<p class=\"h-adr\">\n    <a class=\"p-name u-geo\" href=\"geo:51.526421;-0.081067;crs=wgs84;u=40\">Bricklayer's Arms</a>, \n    <span class=\"p-locality\">London</span> \n</p>";
-   var expected = {"items":[{"type":["h-adr"],"properties":{"name":["Bricklayer's Arms"],"geo":["geo:51.526421;-0.081067;crs=wgs84;u=40"],"locality":["London"],"url":["geo:51.526421;-0.081067;crs=wgs84;u=40"]}}],"rels":{},"rel-urls":{}};
-
-   it('geourl', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-adr/geourl
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-adr', function() {
+   var htmlFragment = "<p class=\"h-adr\">\n    <a class=\"p-name u-geo\" href=\"geo:51.526421;-0.081067;crs=wgs84;u=40\">Bricklayer's Arms</a>, \n    <span class=\"p-locality\">London</span> \n</p>";
+   var expected = {"items":[{"type":["h-adr"],"properties":{"name":["Bricklayer's Arms"],"geo":["geo:51.526421;-0.081067;crs=wgs84;u=40"],"locality":["London"],"url":["geo:51.526421;-0.081067;crs=wgs84;u=40"]}}],"rels":{},"rel-urls":{}};
+
+   it('geourl', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-adr-justaname.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-adr-justaname.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-adr/justaname
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-adr', function() {
-   var htmlFragment = "<p class=\"h-adr\">665 3rd St. Suite 207 San Francisco, CA 94107 U.S.A.</p>";
-   var expected = {"items":[{"type":["h-adr"],"properties":{"name":["665 3rd St. Suite 207 San Francisco, CA 94107 U.S.A."]}}],"rels":{},"rel-urls":{}};
-
-   it('justaname', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-adr/justaname
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-adr', function() {
+   var htmlFragment = "<p class=\"h-adr\">665 3rd St. Suite 207 San Francisco, CA 94107 U.S.A.</p>";
+   var expected = {"items":[{"type":["h-adr"],"properties":{"name":["665 3rd St. Suite 207 San Francisco, CA 94107 U.S.A."]}}],"rels":{},"rel-urls":{}};
+
+   it('justaname', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-adr-simpleproperties.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-adr-simpleproperties.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-adr/simpleproperties
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-adr', function() {
-   var htmlFragment = "<p class=\"h-adr\">\n    <span class=\"p-street-address\">665 3rd St.</span>  \n    <span class=\"p-extended-address\">Suite 207</span>  \n    <span class=\"p-locality\">San Francisco</span>,  \n    <span class=\"p-region\">CA</span>  \n    <span class=\"p-postal-code\">94107</span>  \n    <span class=\"p-country-name\">U.S.A.</span>  \n</p>";
-   var expected = {"items":[{"type":["h-adr"],"properties":{"street-address":["665 3rd St."],"extended-address":["Suite 207"],"locality":["San Francisco"],"region":["CA"],"postal-code":["94107"],"country-name":["U.S.A."],"name":["665 3rd St.  \n    Suite 207  \n    San Francisco,  \n    CA  \n    94107  \n    U.S.A."]}}],"rels":{},"rel-urls":{}};
-
-   it('simpleproperties', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-adr/simpleproperties
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-adr', function() {
+   var htmlFragment = "<p class=\"h-adr\">\n    <span class=\"p-street-address\">665 3rd St.</span>  \n    <span class=\"p-extended-address\">Suite 207</span>  \n    <span class=\"p-locality\">San Francisco</span>,  \n    <span class=\"p-region\">CA</span>  \n    <span class=\"p-postal-code\">94107</span>  \n    <span class=\"p-country-name\">U.S.A.</span>  \n</p>";
+   var expected = {"items":[{"type":["h-adr"],"properties":{"street-address":["665 3rd St."],"extended-address":["Suite 207"],"locality":["San Francisco"],"region":["CA"],"postal-code":["94107"],"country-name":["U.S.A."],"name":["665 3rd St.  \n    Suite 207  \n    San Francisco,  \n    CA  \n    94107  \n    U.S.A."]}}],"rels":{},"rel-urls":{}};
+
+   it('simpleproperties', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-as-note-note.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-as-note-note.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-as-note/note
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-as-note', function() {
-   var htmlFragment = "<!-- http://tantek.com/2015/152/t2/proud-withknown-indieweb-user-empathy -->\n<base href=\"http://tantek.com/\" />\n\n<li class=\"h-entry hentry h-as-note\">\n   <div>\n      <ul>\n         <li>\n            <a href=\"152/t1/congrats-fellow-elected-w3cab-members\" id=\"previtem\" title=\"View the previous (older) item in the stream.\"\n            rel=\"prev\"><abbr title=\"Previous\">←</abbr></a>\n         </li>\n         <li>\n            <a href=\"152/t3/going-indiewebcamp-2015-portland\" id=\"nextitem\" title=\"View the next (newer) item in the stream\" rel=\"next\"><abbr title=\"Next\">→</abbr></a>\n         </li>\n      </ul>\n   </div>\n   <div>In reply to:\n      <p>\n         <a class=\"u-in-reply-to h-cite\" rel=\"in-reply-to\" href=\"http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far\">http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far</a>\n      </p>\n      <p>\n         <a class=\"u-in-reply-to h-cite\" rel=\"in-reply-to\" href=\"https://twitter.com/benwerd/status/604733231284383744\">https://twitter.com/benwerd/status/604733231284383744</a>\n      </p>\n      <hr>\n   </div>\n   <a href=\"../\" class=\"p-author h-card\" rel=\"author\" title=\"Tantek Çelik\"><img src=\"/images/photo.gif\" alt=\"Tantek Çelik\"></a>\n   <p class=\"p-name entry-title e-content entry-content article\">\n      <a class=\"auto-link h-x-username\" href=\"https://twitter.com/benwerd\">@benwerd</a>\n      <a class=\"auto-link h-x-username\" href=\"https://twitter.com/erinjo\">@erinjo</a>also proud of you &amp;\n      <a class=\"auto-link h-x-username\" href=\"https://twitter.com/withknown\">@withknown</a>— so much #indieweb &amp; especially user empathy. Keep up the great work!</p>\n   <span>\n      <span class=\"dt-published published dt-updated updated\">\n         <time class=\"value\" datetime=\"22:20-0700\">22:20</time>on\n         <time class=\"value\">2015-06-01</time>\n      </span>\n      <span class=\"lt\">(ttk.me t4bT2)</span>using\n      <span class=\"using\">BBEdit</span>\n   </span>\n   <div>\n      <form action=\"http://tantek.com/2015/152/t2/proud-withknown-indieweb-user-empathy\">\n         <div>\n            <label>\n               <span class=\"lt\">URL:</span>\n               <input class=\"u-url url u-uid uid bookmark\" type=\"url\" size=\"70\" style=\"max-width:100%\" value=\"http://tantek.com/2015/152/t2/proud-withknown-indieweb-user-empathy\">\n            </label>\n         </div>\n      </form>\n   </div>\n   <div>\n      <a class=\"u-syndication\" rel=\"syndication\" style=\"float:right;\" href=\"https://twitter.com/t/status/605604965566906369\">\n   <img src=\"/images/photo.gif\" style=\"vertical-align:-30%\" alt=\"\"> \n   View \n      Conversation\n      on Twitter\n</a>\n   </div>\n</li>";
-   var expected = {"items":[{"type":["h-entry","h-as-note"],"properties":{"in-reply-to":[{"value":"http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far","type":["h-cite"],"properties":{"name":["http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far"],"url":["http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far"]}},{"value":"https://twitter.com/benwerd/status/604733231284383744","type":["h-cite"],"properties":{"name":["https://twitter.com/benwerd/status/604733231284383744"],"url":["https://twitter.com/benwerd/status/604733231284383744"]}}],"author":[{"type":["h-card"],"properties":{"name":["Tantek Çelik"],"photo":["http://tantek.com/images/photo.gif"],"url":["http://tantek.com/"]}}],"name":["@benwerd\n      @erinjoalso proud of you &\n      @withknown— so much #indieweb & especially user empathy. Keep up the great work!"],"content":[{"value":"@benwerd\n      @erinjoalso proud of you &\n      @withknown— so much #indieweb & especially user empathy. Keep up the great work!","html":"\n      <a class=\"auto-link h-x-username\" href=\"https://twitter.com/benwerd\">@benwerd</a>\n      <a class=\"auto-link h-x-username\" href=\"https://twitter.com/erinjo\">@erinjo</a>also proud of you &\n      <a class=\"auto-link h-x-username\" href=\"https://twitter.com/withknown\">@withknown</a>— so much #indieweb & especially user empathy. Keep up the great work!"}],"published":["2015-06-01 22:20-07:00"],"updated":["2015-06-01 22:20-07:00"],"url":["http://tantek.com/2015/152/t2/proud-withknown-indieweb-user-empathy"],"uid":["http://tantek.com/2015/152/t2/proud-withknown-indieweb-user-empathy"],"syndication":["https://twitter.com/t/status/605604965566906369"]},"children":[{"value":"@benwerd","type":["h-x-username"],"properties":{"name":["@benwerd"],"url":["https://twitter.com/benwerd"]}},{"value":"@erinjo","type":["h-x-username"],"properties":{"name":["@erinjo"],"url":["https://twitter.com/erinjo"]}},{"value":"@withknown","type":["h-x-username"],"properties":{"name":["@withknown"],"url":["https://twitter.com/withknown"]}}]}],"rels":{"prev":["http://tantek.com/152/t1/congrats-fellow-elected-w3cab-members"],"next":["http://tantek.com/152/t3/going-indiewebcamp-2015-portland"],"in-reply-to":["http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far","https://twitter.com/benwerd/status/604733231284383744"],"author":["http://tantek.com/"],"syndication":["https://twitter.com/t/status/605604965566906369"]},"rel-urls":{"http://tantek.com/152/t1/congrats-fellow-elected-w3cab-members":{"title":"View the previous (older) item in the stream.","text":"←","rels":["prev"]},"http://tantek.com/152/t3/going-indiewebcamp-2015-portland":{"title":"View the next (newer) item in the stream","text":"→","rels":["next"]},"http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far":{"text":"http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far","rels":["in-reply-to"]},"https://twitter.com/benwerd/status/604733231284383744":{"text":"https://twitter.com/benwerd/status/604733231284383744","rels":["in-reply-to"]},"http://tantek.com/":{"title":"Tantek Çelik","rels":["author"]},"https://twitter.com/t/status/605604965566906369":{"text":"View \n      Conversation\n      on Twitter","rels":["syndication"]}}};
-
-   it('note', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-as-note/note
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-as-note', function() {
+   var htmlFragment = "<!-- http://tantek.com/2015/152/t2/proud-withknown-indieweb-user-empathy -->\n<base href=\"http://tantek.com/\" />\n\n<li class=\"h-entry hentry h-as-note\">\n   <div>\n      <ul>\n         <li>\n            <a href=\"152/t1/congrats-fellow-elected-w3cab-members\" id=\"previtem\" title=\"View the previous (older) item in the stream.\"\n            rel=\"prev\"><abbr title=\"Previous\">←</abbr></a>\n         </li>\n         <li>\n            <a href=\"152/t3/going-indiewebcamp-2015-portland\" id=\"nextitem\" title=\"View the next (newer) item in the stream\" rel=\"next\"><abbr title=\"Next\">→</abbr></a>\n         </li>\n      </ul>\n   </div>\n   <div>In reply to:\n      <p>\n         <a class=\"u-in-reply-to h-cite\" rel=\"in-reply-to\" href=\"http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far\">http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far</a>\n      </p>\n      <p>\n         <a class=\"u-in-reply-to h-cite\" rel=\"in-reply-to\" href=\"https://twitter.com/benwerd/status/604733231284383744\">https://twitter.com/benwerd/status/604733231284383744</a>\n      </p>\n      <hr>\n   </div>\n   <a href=\"../\" class=\"p-author h-card\" rel=\"author\" title=\"Tantek Çelik\"><img src=\"/images/photo.gif\" alt=\"Tantek Çelik\"></a>\n   <p class=\"p-name entry-title e-content entry-content article\">\n      <a class=\"auto-link h-x-username\" href=\"https://twitter.com/benwerd\">@benwerd</a>\n      <a class=\"auto-link h-x-username\" href=\"https://twitter.com/erinjo\">@erinjo</a>also proud of you &amp;\n      <a class=\"auto-link h-x-username\" href=\"https://twitter.com/withknown\">@withknown</a>— so much #indieweb &amp; especially user empathy. Keep up the great work!</p>\n   <span>\n      <span class=\"dt-published published dt-updated updated\">\n         <time class=\"value\" datetime=\"22:20-0700\">22:20</time>on\n         <time class=\"value\">2015-06-01</time>\n      </span>\n      <span class=\"lt\">(ttk.me t4bT2)</span>using\n      <span class=\"using\">BBEdit</span>\n   </span>\n   <div>\n      <form action=\"http://tantek.com/2015/152/t2/proud-withknown-indieweb-user-empathy\">\n         <div>\n            <label>\n               <span class=\"lt\">URL:</span>\n               <input class=\"u-url url u-uid uid bookmark\" type=\"url\" size=\"70\" style=\"max-width:100%\" value=\"http://tantek.com/2015/152/t2/proud-withknown-indieweb-user-empathy\">\n            </label>\n         </div>\n      </form>\n   </div>\n   <div>\n      <a class=\"u-syndication\" rel=\"syndication\" style=\"float:right;\" href=\"https://twitter.com/t/status/605604965566906369\">\n   <img src=\"/images/photo.gif\" style=\"vertical-align:-30%\" alt=\"\"> \n   View \n      Conversation\n      on Twitter\n</a>\n   </div>\n</li>";
+   var expected = {"items":[{"type":["h-entry","h-as-note"],"properties":{"in-reply-to":[{"value":"http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far","type":["h-cite"],"properties":{"name":["http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far"],"url":["http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far"]}},{"value":"https://twitter.com/benwerd/status/604733231284383744","type":["h-cite"],"properties":{"name":["https://twitter.com/benwerd/status/604733231284383744"],"url":["https://twitter.com/benwerd/status/604733231284383744"]}}],"author":[{"type":["h-card"],"properties":{"name":["Tantek Çelik"],"photo":["http://tantek.com/images/photo.gif"],"url":["http://tantek.com/"]}}],"name":["@benwerd\n      @erinjoalso proud of you &\n      @withknown— so much #indieweb & especially user empathy. Keep up the great work!"],"content":[{"value":"@benwerd\n      @erinjoalso proud of you &\n      @withknown— so much #indieweb & especially user empathy. Keep up the great work!","html":"\n      <a class=\"auto-link h-x-username\" href=\"https://twitter.com/benwerd\">@benwerd</a>\n      <a class=\"auto-link h-x-username\" href=\"https://twitter.com/erinjo\">@erinjo</a>also proud of you &\n      <a class=\"auto-link h-x-username\" href=\"https://twitter.com/withknown\">@withknown</a>— so much #indieweb & especially user empathy. Keep up the great work!"}],"published":["2015-06-01 22:20-07:00"],"updated":["2015-06-01 22:20-07:00"],"url":["http://tantek.com/2015/152/t2/proud-withknown-indieweb-user-empathy"],"uid":["http://tantek.com/2015/152/t2/proud-withknown-indieweb-user-empathy"],"syndication":["https://twitter.com/t/status/605604965566906369"]},"children":[{"value":"@benwerd","type":["h-x-username"],"properties":{"name":["@benwerd"],"url":["https://twitter.com/benwerd"]}},{"value":"@erinjo","type":["h-x-username"],"properties":{"name":["@erinjo"],"url":["https://twitter.com/erinjo"]}},{"value":"@withknown","type":["h-x-username"],"properties":{"name":["@withknown"],"url":["https://twitter.com/withknown"]}}]}],"rels":{"prev":["http://tantek.com/152/t1/congrats-fellow-elected-w3cab-members"],"next":["http://tantek.com/152/t3/going-indiewebcamp-2015-portland"],"in-reply-to":["http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far","https://twitter.com/benwerd/status/604733231284383744"],"author":["http://tantek.com/"],"syndication":["https://twitter.com/t/status/605604965566906369"]},"rel-urls":{"http://tantek.com/152/t1/congrats-fellow-elected-w3cab-members":{"title":"View the previous (older) item in the stream.","text":"←","rels":["prev"]},"http://tantek.com/152/t3/going-indiewebcamp-2015-portland":{"title":"View the next (newer) item in the stream","text":"→","rels":["next"]},"http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far":{"text":"http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far","rels":["in-reply-to"]},"https://twitter.com/benwerd/status/604733231284383744":{"text":"https://twitter.com/benwerd/status/604733231284383744","rels":["in-reply-to"]},"http://tantek.com/":{"title":"Tantek Çelik","rels":["author"]},"https://twitter.com/t/status/605604965566906369":{"text":"View \n      Conversation\n      on Twitter","rels":["syndication"]}}};
+
+   it('note', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-baseurl.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-baseurl.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-card/baseurl
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-card', function() {
-   var htmlFragment = "<base href=\"http://example.org\"/>\n<div class=\"h-card\">\n  <a class=\"p-name u-url\" href=\"http://blog.lizardwrangler.com/\">Mitchell Baker</a> \n  (<a class=\"p-org h-card\" href=\"bios/mitchell-baker/\">Mozilla Foundation</a>)\n  <img class=\"u-photo\" src=\"images/photo.gif\"/>\n</div>";
-   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Mitchell Baker"],"url":["http://blog.lizardwrangler.com/"],"org":[{"value":"Mozilla Foundation","type":["h-card"],"properties":{"name":["Mozilla Foundation"],"url":["http://example.org/bios/mitchell-baker/"]}}],"photo":["http://example.org/images/photo.gif"]}}],"rels":{},"rel-urls":{}};
-
-   it('baseurl', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-card/baseurl
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-card', function() {
+   var htmlFragment = "<base href=\"http://example.org\"/>\n<div class=\"h-card\">\n  <a class=\"p-name u-url\" href=\"http://blog.lizardwrangler.com/\">Mitchell Baker</a> \n  (<a class=\"p-org h-card\" href=\"bios/mitchell-baker/\">Mozilla Foundation</a>)\n  <img class=\"u-photo\" src=\"images/photo.gif\"/>\n</div>";
+   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Mitchell Baker"],"url":["http://blog.lizardwrangler.com/"],"org":[{"value":"Mozilla Foundation","type":["h-card"],"properties":{"name":["Mozilla Foundation"],"url":["http://example.org/bios/mitchell-baker/"]}}],"photo":["http://example.org/images/photo.gif"]}}],"rels":{},"rel-urls":{}};
+
+   it('baseurl', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-childimplied.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-childimplied.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-card/childimplied
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-card', function() {
-   var htmlFragment = "<meta charset=\"utf-8\">\n<a class=\"h-card\" href=\"http://people.opera.com/howcome/\" title=\"Håkon Wium Lie, CTO Opera\">\n  <article>\n     <h2 class=\"p-name\">Håkon Wium Lie</h2>\n     <img src=\"http://upload.wikimedia.org/wikipedia/commons/thumb/9/96/H%C3%A5kon-Wium-Lie-2009-03.jpg/215px-H%C3%A5kon-Wium-Lie-2009-03.jpg\" />\n  </article>\n</a>";
-   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Håkon Wium Lie"],"photo":["http://upload.wikimedia.org/wikipedia/commons/thumb/9/96/H%C3%A5kon-Wium-Lie-2009-03.jpg/215px-H%C3%A5kon-Wium-Lie-2009-03.jpg"],"url":["http://people.opera.com/howcome/"]}}],"rels":{},"rel-urls":{}};
-
-   it('childimplied', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-card/childimplied
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-card', function() {
+   var htmlFragment = "<meta charset=\"utf-8\">\n<a class=\"h-card\" href=\"http://people.opera.com/howcome/\" title=\"Håkon Wium Lie, CTO Opera\">\n  <article>\n     <h2 class=\"p-name\">Håkon Wium Lie</h2>\n     <img src=\"http://upload.wikimedia.org/wikipedia/commons/thumb/9/96/H%C3%A5kon-Wium-Lie-2009-03.jpg/215px-H%C3%A5kon-Wium-Lie-2009-03.jpg\" />\n  </article>\n</a>";
+   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Håkon Wium Lie"],"photo":["http://upload.wikimedia.org/wikipedia/commons/thumb/9/96/H%C3%A5kon-Wium-Lie-2009-03.jpg/215px-H%C3%A5kon-Wium-Lie-2009-03.jpg"],"url":["http://people.opera.com/howcome/"]}}],"rels":{},"rel-urls":{}};
+
+   it('childimplied', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-extendeddescription.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-extendeddescription.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-card/extendeddescription
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-card', function() {
-   var htmlFragment = "<div class=\"h-card\">\n  <img class=\"u-photo\" alt=\"photo of Mitchell\" src=\"http://blog.mozilla.org/press/files/2012/04/mitchell-baker.jpg\" />\n  <p>\n    <a class=\"p-name u-url\" href=\"http://blog.lizardwrangler.com/\">Mitchell Baker</a>\n    (<a class=\"u-url\" href=\"https://twitter.com/MitchellBaker\">@MitchellBaker</a>)\n    <span class=\"p-org\">Mozilla Foundation</span>\n  </p>\n  <p class=\"p-note\">Mitchell is responsible for setting the direction and scope of the Mozilla Foundation and its activities.</p>\n  <p><span class=\"p-category\">Strategy</span> and <span class=\"p-category\">Leadership</span></p>\n</div>";
-   var expected = {"items":[{"type":["h-card"],"properties":{"photo":["http://blog.mozilla.org/press/files/2012/04/mitchell-baker.jpg"],"url":["http://blog.lizardwrangler.com/","https://twitter.com/MitchellBaker"],"name":["Mitchell Baker"],"org":["Mozilla Foundation"],"note":["Mitchell is responsible for setting the direction and scope of the Mozilla Foundation and its activities."],"category":["Strategy","Leadership"]}}],"rels":{},"rel-urls":{}};
-
-   it('extendeddescription', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-card/extendeddescription
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-card', function() {
+   var htmlFragment = "<div class=\"h-card\">\n  <img class=\"u-photo\" alt=\"photo of Mitchell\" src=\"http://blog.mozilla.org/press/files/2012/04/mitchell-baker.jpg\" />\n  <p>\n    <a class=\"p-name u-url\" href=\"http://blog.lizardwrangler.com/\">Mitchell Baker</a>\n    (<a class=\"u-url\" href=\"https://twitter.com/MitchellBaker\">@MitchellBaker</a>)\n    <span class=\"p-org\">Mozilla Foundation</span>\n  </p>\n  <p class=\"p-note\">Mitchell is responsible for setting the direction and scope of the Mozilla Foundation and its activities.</p>\n  <p><span class=\"p-category\">Strategy</span> and <span class=\"p-category\">Leadership</span></p>\n</div>";
+   var expected = {"items":[{"type":["h-card"],"properties":{"photo":["http://blog.mozilla.org/press/files/2012/04/mitchell-baker.jpg"],"url":["http://blog.lizardwrangler.com/","https://twitter.com/MitchellBaker"],"name":["Mitchell Baker"],"org":["Mozilla Foundation"],"note":["Mitchell is responsible for setting the direction and scope of the Mozilla Foundation and its activities."],"category":["Strategy","Leadership"]}}],"rels":{},"rel-urls":{}};
+
+   it('extendeddescription', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-hcard.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-hcard.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-card/hcard
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-card', function() {
-   var htmlFragment = "<div class=\"h-card\">\n  <a class=\"p-name u-url\" href=\"http://blog.lizardwrangler.com/\">Mitchell Baker</a> \n  (<a class=\"p-org h-card\" href=\"http://mozilla.org/\">Mozilla Foundation</a>)\n</div>";
-   var expected = {"items":[{"type":["h-card"],"properties":{"url":["http://blog.lizardwrangler.com/"],"name":["Mitchell Baker"],"org":[{"value":"Mozilla Foundation","type":["h-card"],"properties":{"name":["Mozilla Foundation"],"url":["http://mozilla.org/"]}}]}}],"rels":{},"rel-urls":{}};
-
-   it('hcard', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-card/hcard
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-card', function() {
+   var htmlFragment = "<div class=\"h-card\">\n  <a class=\"p-name u-url\" href=\"http://blog.lizardwrangler.com/\">Mitchell Baker</a> \n  (<a class=\"p-org h-card\" href=\"http://mozilla.org/\">Mozilla Foundation</a>)\n</div>";
+   var expected = {"items":[{"type":["h-card"],"properties":{"url":["http://blog.lizardwrangler.com/"],"name":["Mitchell Baker"],"org":[{"value":"Mozilla Foundation","type":["h-card"],"properties":{"name":["Mozilla Foundation"],"url":["http://mozilla.org/"]}}]}}],"rels":{},"rel-urls":{}};
+
+   it('hcard', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-horghcard.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-horghcard.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-card/horghcard
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-card', function() {
-   var htmlFragment = "<div class=\"h-card\">\n  <a class=\"p-name u-url\" href=\"http://blog.lizardwrangler.com/\">Mitchell Baker</a> \n  (<a class=\"p-org h-card h-org\" href=\"http://mozilla.org/\">Mozilla Foundation</a>)\n</div>";
-   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Mitchell Baker"],"url":["http://blog.lizardwrangler.com/"],"org":[{"value":"Mozilla Foundation","type":["h-card","h-org"],"properties":{"name":["Mozilla Foundation"],"url":["http://mozilla.org/"]}}]}}],"rels":{},"rel-urls":{}};
-
-   it('horghcard', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-card/horghcard
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-card', function() {
+   var htmlFragment = "<div class=\"h-card\">\n  <a class=\"p-name u-url\" href=\"http://blog.lizardwrangler.com/\">Mitchell Baker</a> \n  (<a class=\"p-org h-card h-org\" href=\"http://mozilla.org/\">Mozilla Foundation</a>)\n</div>";
+   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Mitchell Baker"],"url":["http://blog.lizardwrangler.com/"],"org":[{"value":"Mozilla Foundation","type":["h-card","h-org"],"properties":{"name":["Mozilla Foundation"],"url":["http://mozilla.org/"]}}]}}],"rels":{},"rel-urls":{}};
+
+   it('horghcard', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-hyperlinkedphoto.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-hyperlinkedphoto.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-card/hyperlinkedphoto
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-card', function() {
-   var htmlFragment = "<a class=\"h-card\" href=\"http://rohit.khare.org/\">\n        <img alt=\"Rohit Khare\" src=\"images/photo.gif\" />\n    </a>";
-   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Rohit Khare"],"photo":["http://example.com/images/photo.gif"],"url":["http://rohit.khare.org/"]}}],"rels":{},"rel-urls":{}};
-
-   it('hyperlinkedphoto', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-card/hyperlinkedphoto
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-card', function() {
+   var htmlFragment = "<a class=\"h-card\" href=\"http://rohit.khare.org/\">\n        <img alt=\"Rohit Khare\" src=\"images/photo.gif\" />\n    </a>";
+   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Rohit Khare"],"photo":["http://example.com/images/photo.gif"],"url":["http://rohit.khare.org/"]}}],"rels":{},"rel-urls":{}};
+
+   it('hyperlinkedphoto', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-impliedname.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-impliedname.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-card/impliedname
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-card', function() {
-   var htmlFragment = "\n<img class=\"h-card\" src=\"jane.html\" alt=\"Jane Doe\"/>\n<area class=\"h-card\" href=\"jane.html\" alt=\"Jane Doe\"></area>\n<abbr class=\"h-card\" title=\"Jane Doe\">JD</abbr>\n\n<div class=\"h-card\"><img src=\"jane.html\" alt=\"Jane Doe\"/></div>\n<div class=\"h-card\"><area href=\"jane.html\" alt=\"Jane Doe\"></area></div>\n<div class=\"h-card\"><abbr title=\"Jane Doe\">JD</abbr></div>\n\n<div class=\"h-card\"><span><img src=\"jane.html\" alt=\"Jane Doe\"/></span></div>\n<div class=\"h-card\"><span><area href=\"jane.html\" alt=\"Jane Doe\"></area></span></div>\n<div class=\"h-card\"><span><abbr title=\"Jane Doe\">JD</abbr></span></div>\n\n<div class=\"h-card\"><img class=\"h-card\" src=\"john.html\" alt=\"John Doe\"/>Name</div>\n<div class=\"h-card\"><span class=\"h-card\"><img src=\"john.html\" alt=\"John Doe\"/>Name</span></div>\n";
-   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Jane Doe"],"photo":["http://example.com/jane.html"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"url":["http://example.com/jane.html"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"photo":["http://example.com/jane.html"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"url":["http://example.com/jane.html"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"photo":["http://example.com/jane.html"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"url":["http://example.com/jane.html"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"]}},{"type":["h-card"],"properties":{"name":["Name"]},"children":[{"type":["h-card"],"properties":{"name":["John Doe"],"photo":["http://example.com/john.html"]}}]},{"type":["h-card"],"properties":{"name":["Name"]},"children":[{"value":"Name","type":["h-card"],"properties":{"name":["John Doe"],"photo":["http://example.com/john.html"]}}]}],"rels":{},"rel-urls":{}};
-
-   it('impliedname', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-card/impliedname
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-card', function() {
+   var htmlFragment = "\n<img class=\"h-card\" src=\"jane.html\" alt=\"Jane Doe\"/>\n<area class=\"h-card\" href=\"jane.html\" alt=\"Jane Doe\"></area>\n<abbr class=\"h-card\" title=\"Jane Doe\">JD</abbr>\n\n<div class=\"h-card\"><img src=\"jane.html\" alt=\"Jane Doe\"/></div>\n<div class=\"h-card\"><area href=\"jane.html\" alt=\"Jane Doe\"></area></div>\n<div class=\"h-card\"><abbr title=\"Jane Doe\">JD</abbr></div>\n\n<div class=\"h-card\"><span><img src=\"jane.html\" alt=\"Jane Doe\"/></span></div>\n<div class=\"h-card\"><span><area href=\"jane.html\" alt=\"Jane Doe\"></area></span></div>\n<div class=\"h-card\"><span><abbr title=\"Jane Doe\">JD</abbr></span></div>\n\n<div class=\"h-card\"><img class=\"h-card\" src=\"john.html\" alt=\"John Doe\"/>Name</div>\n<div class=\"h-card\"><span class=\"h-card\"><img src=\"john.html\" alt=\"John Doe\"/>Name</span></div>\n";
+   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Jane Doe"],"photo":["http://example.com/jane.html"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"url":["http://example.com/jane.html"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"photo":["http://example.com/jane.html"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"url":["http://example.com/jane.html"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"photo":["http://example.com/jane.html"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"url":["http://example.com/jane.html"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"]}},{"type":["h-card"],"properties":{"name":["Name"]},"children":[{"type":["h-card"],"properties":{"name":["John Doe"],"photo":["http://example.com/john.html"]}}]},{"type":["h-card"],"properties":{"name":["Name"]},"children":[{"value":"Name","type":["h-card"],"properties":{"name":["John Doe"],"photo":["http://example.com/john.html"]}}]}],"rels":{},"rel-urls":{}};
+
+   it('impliedname', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-impliedphoto.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-impliedphoto.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-card/impliedphoto
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-card', function() {
-   var htmlFragment = "<img class=\"h-card\" alt=\"Jane Doe\" src=\"jane.jpeg\"/>\n<object class=\"h-card\" data=\"jane.jpeg\"/>Jane Doe</object>\n\n<div class=\"h-card\"><img alt=\"Jane Doe\" src=\"jane.jpeg\"/></div> \n<div class=\"h-card\"><object data=\"jane.jpeg\"/>Jane Doe</object></div> \n\n<div class=\"h-card\"><span><img alt=\"Jane Doe\" src=\"jane.jpeg\"/></span></div> \n<div class=\"h-card\"><span><object data=\"jane.jpeg\"/>Jane Doe</object></span></div> \n\n<div class=\"h-card\"><img class=\"h-card\" alt=\"Jane Doe\" src=\"jane.jpeg\"/>Jane Doe</div> \n<div class=\"h-card\"><span class=\"h-card\"><object data=\"jane.jpeg\"/>Jane Doe</object></span></div> ";
-   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Jane Doe"],"photo":["http://example.com/jane.jpeg"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"photo":["http://example.com/jane.jpeg"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"photo":["http://example.com/jane.jpeg"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"photo":["http://example.com/jane.jpeg"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"photo":["http://example.com/jane.jpeg"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"photo":["http://example.com/jane.jpeg"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"]},"children":[{"type":["h-card"],"properties":{"name":["Jane Doe"],"photo":["http://example.com/jane.jpeg"]}}]},{"type":["h-card"],"properties":{"name":["Jane Doe"]},"children":[{"value":"Jane Doe","type":["h-card"],"properties":{"name":["Jane Doe"],"photo":["http://example.com/jane.jpeg"]}}]}],"rels":{},"rel-urls":{}};
-
-   it('impliedphoto', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-card/impliedphoto
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-card', function() {
+   var htmlFragment = "<img class=\"h-card\" alt=\"Jane Doe\" src=\"jane.jpeg\"/>\n<object class=\"h-card\" data=\"jane.jpeg\"/>Jane Doe</object>\n\n<div class=\"h-card\"><img alt=\"Jane Doe\" src=\"jane.jpeg\"/></div> \n<div class=\"h-card\"><object data=\"jane.jpeg\"/>Jane Doe</object></div> \n\n<div class=\"h-card\"><span><img alt=\"Jane Doe\" src=\"jane.jpeg\"/></span></div> \n<div class=\"h-card\"><span><object data=\"jane.jpeg\"/>Jane Doe</object></span></div> \n\n<div class=\"h-card\"><img class=\"h-card\" alt=\"Jane Doe\" src=\"jane.jpeg\"/>Jane Doe</div> \n<div class=\"h-card\"><span class=\"h-card\"><object data=\"jane.jpeg\"/>Jane Doe</object></span></div> ";
+   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Jane Doe"],"photo":["http://example.com/jane.jpeg"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"photo":["http://example.com/jane.jpeg"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"photo":["http://example.com/jane.jpeg"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"photo":["http://example.com/jane.jpeg"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"photo":["http://example.com/jane.jpeg"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"photo":["http://example.com/jane.jpeg"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"]},"children":[{"type":["h-card"],"properties":{"name":["Jane Doe"],"photo":["http://example.com/jane.jpeg"]}}]},{"type":["h-card"],"properties":{"name":["Jane Doe"]},"children":[{"value":"Jane Doe","type":["h-card"],"properties":{"name":["Jane Doe"],"photo":["http://example.com/jane.jpeg"]}}]}],"rels":{},"rel-urls":{}};
+
+   it('impliedphoto', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-impliedurl.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-impliedurl.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-card/impliedurl
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-card', function() {
-   var htmlFragment = "<a class=\"h-card\" href=\"jane.html\">Jane Doe</a>\n<area class=\"h-card\" href=\"jane.html\" alt=\"Jane Doe\"/ >\n<div class=\"h-card\" ><a href=\"jane.html\">Jane Doe</a><p></p></div> \n<div class=\"h-card\" ><area href=\"jane.html\">Jane Doe</area><p></p></div>\n<div class=\"h-card\" ><a class=\"h-card\" href=\"jane.html\">Jane Doe</a><p></p></div> ";
-   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Jane Doe"],"url":["http://example.com/jane.html"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"url":["http://example.com/jane.html"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"url":["http://example.com/jane.html"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"url":["http://example.com/jane.html"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"]},"children":[{"value":"Jane Doe","type":["h-card"],"properties":{"name":["Jane Doe"],"url":["http://example.com/jane.html"]}}]}],"rels":{},"rel-urls":{}};
-
-   it('impliedurl', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-card/impliedurl
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-card', function() {
+   var htmlFragment = "<a class=\"h-card\" href=\"jane.html\">Jane Doe</a>\n<area class=\"h-card\" href=\"jane.html\" alt=\"Jane Doe\"/ >\n<div class=\"h-card\" ><a href=\"jane.html\">Jane Doe</a><p></p></div> \n<div class=\"h-card\" ><area href=\"jane.html\">Jane Doe</area><p></p></div>\n<div class=\"h-card\" ><a class=\"h-card\" href=\"jane.html\">Jane Doe</a><p></p></div> ";
+   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Jane Doe"],"url":["http://example.com/jane.html"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"url":["http://example.com/jane.html"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"url":["http://example.com/jane.html"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"],"url":["http://example.com/jane.html"]}},{"type":["h-card"],"properties":{"name":["Jane Doe"]},"children":[{"value":"Jane Doe","type":["h-card"],"properties":{"name":["Jane Doe"],"url":["http://example.com/jane.html"]}}]}],"rels":{},"rel-urls":{}};
+
+   it('impliedurl', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-justahyperlink.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-justahyperlink.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-card/justahyperlink
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-card', function() {
-   var htmlFragment = "<a class=\"h-card\" href=\"http://benward.me/\">Ben Ward</a>";
-   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Ben Ward"],"url":["http://benward.me/"]}}],"rels":{},"rel-urls":{}};
-
-   it('justahyperlink', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-card/justahyperlink
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-card', function() {
+   var htmlFragment = "<a class=\"h-card\" href=\"http://benward.me/\">Ben Ward</a>";
+   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Ben Ward"],"url":["http://benward.me/"]}}],"rels":{},"rel-urls":{}};
+
+   it('justahyperlink', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-justaname.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-justaname.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-card/justaname
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-card', function() {
-   var htmlFragment = "<p class=\"h-card\">Frances Berriman</p>";
-   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Frances Berriman"]}}],"rels":{},"rel-urls":{}};
-
-   it('justaname', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-card/justaname
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-card', function() {
+   var htmlFragment = "<p class=\"h-card\">Frances Berriman</p>";
+   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Frances Berriman"]}}],"rels":{},"rel-urls":{}};
+
+   it('justaname', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-nested.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-nested.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-card/nested
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-card', function() {
-   var htmlFragment = "<div class=\"h-card\">\n  <a class=\"p-name u-url\" href=\"http://blog.lizardwrangler.com/\">Mitchell Baker</a> \n  (<a class=\"h-org h-card\" href=\"http://mozilla.org/\">Mozilla Foundation</a>)\n</div>";
-   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Mitchell Baker"],"url":["http://blog.lizardwrangler.com/"]},"children":[{"value":"Mozilla Foundation","type":["h-org","h-card"],"properties":{"name":["Mozilla Foundation"],"url":["http://mozilla.org/"]}}]}],"rels":{},"rel-urls":{}};
-
-   it('nested', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-card/nested
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-card', function() {
+   var htmlFragment = "<div class=\"h-card\">\n  <a class=\"p-name u-url\" href=\"http://blog.lizardwrangler.com/\">Mitchell Baker</a> \n  (<a class=\"h-org h-card\" href=\"http://mozilla.org/\">Mozilla Foundation</a>)\n</div>";
+   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Mitchell Baker"],"url":["http://blog.lizardwrangler.com/"]},"children":[{"value":"Mozilla Foundation","type":["h-org","h-card"],"properties":{"name":["Mozilla Foundation"],"url":["http://mozilla.org/"]}}]}],"rels":{},"rel-urls":{}};
+
+   it('nested', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-p-property.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-p-property.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-card/p-property
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-card', function() {
-   var htmlFragment = "<div class=\"h-card\">\n    \n    <span class=\"p-name\">\n        <span class=\"p-given-name value\">John</span> \n        <abbr class=\"p-additional-name\" title=\"Peter\">P</abbr>  \n        <span class=\"p-family-name value \">Doe</span> \n    </span>\n    <data class=\"p-honorific-suffix\" value=\"MSc\"></data>\n    \n    \n    <br class=\"p-honorific-suffix\" />BSc<br />\n    <hr class=\"p-honorific-suffix\" />BA\n    \n    \n    <img class=\"p-honorific-suffix\" src=\"images/logo.gif\" alt=\"PHD\" />\n    <img src=\"images/logo.gif\" alt=\"company logos\" usemap=\"#logomap\" />\n    <map name=\"logomap\">\n        <area class=\"p-org\" shape=\"rect\" coords=\"0,0,82,126\" href=\"madgex.htm\" alt=\"Madgex\" />\n        <area class=\"p-org\" shape=\"circle\" coords=\"90,58,3\" href=\"mozilla.htm\" alt=\"Mozilla\" />\n    </map>\n</div>";
-   var expected = {"items":[{"type":["h-card"],"properties":{"name":["John Doe"],"given-name":["John"],"additional-name":["Peter"],"family-name":["Doe"],"honorific-suffix":["MSc","PHD"],"org":["Madgex","Mozilla"]}}],"rels":{},"rel-urls":{}};
-
-   it('p-property', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-card/p-property
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-card', function() {
+   var htmlFragment = "<div class=\"h-card\">\n    \n    <span class=\"p-name\">\n        <span class=\"p-given-name value\">John</span> \n        <abbr class=\"p-additional-name\" title=\"Peter\">P</abbr>  \n        <span class=\"p-family-name value \">Doe</span> \n    </span>\n    <data class=\"p-honorific-suffix\" value=\"MSc\"></data>\n    \n    \n    <br class=\"p-honorific-suffix\" />BSc<br />\n    <hr class=\"p-honorific-suffix\" />BA\n    \n    \n    <img class=\"p-honorific-suffix\" src=\"images/logo.gif\" alt=\"PHD\" />\n    <img src=\"images/logo.gif\" alt=\"company logos\" usemap=\"#logomap\" />\n    <map name=\"logomap\">\n        <area class=\"p-org\" shape=\"rect\" coords=\"0,0,82,126\" href=\"madgex.htm\" alt=\"Madgex\" />\n        <area class=\"p-org\" shape=\"circle\" coords=\"90,58,3\" href=\"mozilla.htm\" alt=\"Mozilla\" />\n    </map>\n</div>";
+   var expected = {"items":[{"type":["h-card"],"properties":{"name":["John Doe"],"given-name":["John"],"additional-name":["Peter"],"family-name":["Doe"],"honorific-suffix":["MSc","PHD"],"org":["Madgex","Mozilla"]}}],"rels":{},"rel-urls":{}};
+
+   it('p-property', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-relativeurls.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-card-relativeurls.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-card/relativeurls
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-card', function() {
-   var htmlFragment = "<base href=\"http://example.com\" >\n<div class=\"h-card\">\n  <a class=\"p-name u-url\" href=\"http://blog.lizardwrangler.com/\">Mitchell Baker</a> \n  (<a class=\"p-org h-card\" href=\"bios/mitchell-baker/\">Mozilla Foundation</a>)\n  <img class=\"u-photo\" src=\"bios/mitchell-baker/picture.jpeg\"/>\n</div>";
-   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Mitchell Baker"],"url":["http://blog.lizardwrangler.com/"],"org":[{"value":"Mozilla Foundation","type":["h-card"],"properties":{"name":["Mozilla Foundation"],"url":["http://example.com/bios/mitchell-baker/"]}}],"photo":["http://example.com/bios/mitchell-baker/picture.jpeg"]}}],"rels":{},"rel-urls":{}};
-
-   it('relativeurls', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-card/relativeurls
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-card', function() {
+   var htmlFragment = "<base href=\"http://example.com\" >\n<div class=\"h-card\">\n  <a class=\"p-name u-url\" href=\"http://blog.lizardwrangler.com/\">Mitchell Baker</a> \n  (<a class=\"p-org h-card\" href=\"bios/mitchell-baker/\">Mozilla Foundation</a>)\n  <img class=\"u-photo\" src=\"bios/mitchell-baker/picture.jpeg\"/>\n</div>";
+   var expected = {"items":[{"type":["h-card"],"properties":{"name":["Mitchell Baker"],"url":["http://blog.lizardwrangler.com/"],"org":[{"value":"Mozilla Foundation","type":["h-card"],"properties":{"name":["Mozilla Foundation"],"url":["http://example.com/bios/mitchell-baker/"]}}],"photo":["http://example.com/bios/mitchell-baker/picture.jpeg"]}}],"rels":{},"rel-urls":{}};
+
+   it('relativeurls', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-entry-impliedvalue-nested.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-entry-impliedvalue-nested.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-entry/impliedvalue-nested
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-entry', function() {
-   var htmlFragment = "<div class=\"h-entry\">\n      <div class=\"u-in-reply-to h-cite\">\n            <span class=\"p-author h-card\">\n                  <span class=\"p-name\">Example Author</span>\n                  <a class=\"u-url\" href=\"http://example.com\">Home</a>\n            </span>\n            <a class=\"p-name u-url\" href=\"http://example.com/post\">Example Post</a>\n      </div>\n</div>";
-   var expected = {"items":[{"type":["h-entry"],"properties":{"in-reply-to":[{"type":["h-cite"],"properties":{"name":["Example Post"],"url":["http://example.com/post"],"author":[{"type":["h-card"],"properties":{"url":["http://example.com"],"name":["Example Author"]},"value":"Example Author"}]},"value":"http://example.com/post"}],"name":["Example Author\n                  Home\n            \n            Example Post"]}}],"rels":{},"rel-urls":{}};
-
-   it('impliedvalue-nested', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-entry/impliedvalue-nested
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-entry', function() {
+   var htmlFragment = "<div class=\"h-entry\">\n      <div class=\"u-in-reply-to h-cite\">\n            <span class=\"p-author h-card\">\n                  <span class=\"p-name\">Example Author</span>\n                  <a class=\"u-url\" href=\"http://example.com\">Home</a>\n            </span>\n            <a class=\"p-name u-url\" href=\"http://example.com/post\">Example Post</a>\n      </div>\n</div>";
+   var expected = {"items":[{"type":["h-entry"],"properties":{"in-reply-to":[{"type":["h-cite"],"properties":{"name":["Example Post"],"url":["http://example.com/post"],"author":[{"type":["h-card"],"properties":{"url":["http://example.com"],"name":["Example Author"]},"value":"Example Author"}]},"value":"http://example.com/post"}],"name":["Example Author\n                  Home\n            \n            Example Post"]}}],"rels":{},"rel-urls":{}};
+
+   it('impliedvalue-nested', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-entry-justahyperlink.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-entry-justahyperlink.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-entry/justahyperlink
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-entry', function() {
-   var htmlFragment = "<a class=\"h-entry\" href=\"http://microformats.org/2012/06/25/microformats-org-at-7\">microformats.org at 7</a>";
-   var expected = {"items":[{"type":["h-entry"],"properties":{"name":["microformats.org at 7"],"url":["http://microformats.org/2012/06/25/microformats-org-at-7"]}}],"rels":{},"rel-urls":{}};
-
-   it('justahyperlink', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-entry/justahyperlink
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-entry', function() {
+   var htmlFragment = "<a class=\"h-entry\" href=\"http://microformats.org/2012/06/25/microformats-org-at-7\">microformats.org at 7</a>";
+   var expected = {"items":[{"type":["h-entry"],"properties":{"name":["microformats.org at 7"],"url":["http://microformats.org/2012/06/25/microformats-org-at-7"]}}],"rels":{},"rel-urls":{}};
+
+   it('justahyperlink', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-entry-justaname.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-entry-justaname.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-entry/justaname
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-entry', function() {
-   var htmlFragment = "<p class=\"h-entry\">microformats.org at 7</p>";
-   var expected = {"items":[{"type":["h-entry"],"properties":{"name":["microformats.org at 7"]}}],"rels":{},"rel-urls":{}};
-
-   it('justaname', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-entry/justaname
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-entry', function() {
+   var htmlFragment = "<p class=\"h-entry\">microformats.org at 7</p>";
+   var expected = {"items":[{"type":["h-entry"],"properties":{"name":["microformats.org at 7"]}}],"rels":{},"rel-urls":{}};
+
+   it('justaname', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-entry-summarycontent.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-entry-summarycontent.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-entry/summarycontent
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-entry', function() {
-   var htmlFragment = "<meta charset=\"utf-8\">\n<div class=\"h-entry\">\n    <h1><a class=\"p-name u-url\" href=\"http://microformats.org/2012/06/25/microformats-org-at-7\">microformats.org at 7</a></h1>\n    <div class=\"e-content\">\n        <p class=\"p-summary\">Last week the microformats.org community \n            celebrated its 7th birthday at a gathering hosted by Mozilla in \n            San Francisco and recognized accomplishments, challenges, and \n            opportunities.</p>\n\n        <p>The microformats tagline “humans first, machines second” \n            forms the basis of many of our \n            <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n            in that regard, we’d like to recognize a few people and \n            thank them for their years of volunteer service </p>\n    </div>  \n    <p>Updated \n        <time class=\"dt-updated\" datetime=\"2012-06-25T17:08:26\">June 25th, 2012</time> by\n        <a class=\"p-author h-card\" href=\"http://tantek.com/\">Tantek</a>\n    </p>\n</div>";
-   var expected = {"items":[{"type":["h-entry"],"properties":{"url":["http://microformats.org/2012/06/25/microformats-org-at-7"],"name":["microformats.org at 7"],"content":[{"value":"Last week the microformats.org community \n            celebrated its 7th birthday at a gathering hosted by Mozilla in \n            San Francisco and recognized accomplishments, challenges, and \n            opportunities.\n\n        The microformats tagline “humans first, machines second” \n            forms the basis of many of our \n            principles, and \n            in that regard, we’d like to recognize a few people and \n            thank them for their years of volunteer service","html":"\n        <p class=\"p-summary\">Last week the microformats.org community \n            celebrated its 7th birthday at a gathering hosted by Mozilla in \n            San Francisco and recognized accomplishments, challenges, and \n            opportunities.</p>\n\n        <p>The microformats tagline “humans first, machines second” \n            forms the basis of many of our \n            <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n            in that regard, we’d like to recognize a few people and \n            thank them for their years of volunteer service </p>\n    "}],"summary":["Last week the microformats.org community \n            celebrated its 7th birthday at a gathering hosted by Mozilla in \n            San Francisco and recognized accomplishments, challenges, and \n            opportunities."],"updated":["2012-06-25 17:08:26"],"author":[{"value":"Tantek","type":["h-card"],"properties":{"name":["Tantek"],"url":["http://tantek.com/"]}}]}}],"rels":{},"rel-urls":{}};
-
-   it('summarycontent', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-entry/summarycontent
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-entry', function() {
+   var htmlFragment = "<meta charset=\"utf-8\">\n<div class=\"h-entry\">\n    <h1><a class=\"p-name u-url\" href=\"http://microformats.org/2012/06/25/microformats-org-at-7\">microformats.org at 7</a></h1>\n    <div class=\"e-content\">\n        <p class=\"p-summary\">Last week the microformats.org community \n            celebrated its 7th birthday at a gathering hosted by Mozilla in \n            San Francisco and recognized accomplishments, challenges, and \n            opportunities.</p>\n\n        <p>The microformats tagline “humans first, machines second” \n            forms the basis of many of our \n            <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n            in that regard, we’d like to recognize a few people and \n            thank them for their years of volunteer service </p>\n    </div>  \n    <p>Updated \n        <time class=\"dt-updated\" datetime=\"2012-06-25T17:08:26\">June 25th, 2012</time> by\n        <a class=\"p-author h-card\" href=\"http://tantek.com/\">Tantek</a>\n    </p>\n</div>";
+   var expected = {"items":[{"type":["h-entry"],"properties":{"url":["http://microformats.org/2012/06/25/microformats-org-at-7"],"name":["microformats.org at 7"],"content":[{"value":"Last week the microformats.org community \n            celebrated its 7th birthday at a gathering hosted by Mozilla in \n            San Francisco and recognized accomplishments, challenges, and \n            opportunities.\n\n        The microformats tagline “humans first, machines second” \n            forms the basis of many of our \n            principles, and \n            in that regard, we’d like to recognize a few people and \n            thank them for their years of volunteer service","html":"\n        <p class=\"p-summary\">Last week the microformats.org community \n            celebrated its 7th birthday at a gathering hosted by Mozilla in \n            San Francisco and recognized accomplishments, challenges, and \n            opportunities.</p>\n\n        <p>The microformats tagline “humans first, machines second” \n            forms the basis of many of our \n            <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n            in that regard, we’d like to recognize a few people and \n            thank them for their years of volunteer service </p>\n    "}],"summary":["Last week the microformats.org community \n            celebrated its 7th birthday at a gathering hosted by Mozilla in \n            San Francisco and recognized accomplishments, challenges, and \n            opportunities."],"updated":["2012-06-25 17:08:26"],"author":[{"value":"Tantek","type":["h-card"],"properties":{"name":["Tantek"],"url":["http://tantek.com/"]}}]}}],"rels":{},"rel-urls":{}};
+
+   it('summarycontent', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-entry-u-property.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-entry-u-property.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-entry/u-property
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-entry', function() {
-   var htmlFragment = "<base href=\"http://example.com\">\n<div class=\"h-entry\">\n    <p class=\"p-name\">microformats.org at 7</p>\n\n    \n    <p class=\"u-url\">\n      <span class=\"value-title\" title=\"http://microformats.org/\"> </span>\n      Article permalink\n    </p>\n    <p class=\"u-url\">\n        <span class=\"value\">http://microformats.org/</span> - \n        <span class=\"value\">2012/06/25/microformats-org-at-7</span> \n    </p> \n\n    <p><a class=\"u-url\" href=\"http://microformats.org/2012/06/25/microformats-org-at-7\">Article permalink</a></p>\n\n    <img src=\"images/logo.gif\" alt=\"company logos\" usemap=\"#logomap\" />\n    <map name=\"logomap\">\n        <area class=\"u-url\" shape=\"rect\" coords=\"0,0,82,126\" href=\"http://microformats.org/\" alt=\"microformats.org\" />\n    </map>\n\n    <img class=\"u-photo\" src=\"images/logo.gif\" alt=\"company logos\" />\n\n    <object class=\"u-url\" data=\"http://microformats.org/wiki/microformats2-parsing\"></object>\n\n    <abbr class=\"u-url\" title=\"http://microformats.org/wiki/value-class-pattern\">value-class-pattern</abbr> \n    <data class=\"u-url\" value=\"http://microformats.org/wiki/\"></data>\n    <p class=\"u-url\">http://microformats.org/discuss</p>\n</div>";
-   var expected = {"items":[{"type":["h-entry"],"properties":{"name":["microformats.org at 7"],"url":["http://microformats.org/","http://microformats.org/2012/06/25/microformats-org-at-7","http://microformats.org/2012/06/25/microformats-org-at-7","http://microformats.org/","http://microformats.org/wiki/microformats2-parsing","http://microformats.org/wiki/value-class-pattern","http://microformats.org/wiki/","http://microformats.org/discuss"],"photo":["http://example.com/images/logo.gif"]}}],"rels":{},"rel-urls":{}};
-
-   it('u-property', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-entry/u-property
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-entry', function() {
+   var htmlFragment = "<base href=\"http://example.com\">\n<div class=\"h-entry\">\n    <p class=\"p-name\">microformats.org at 7</p>\n\n    \n    <p class=\"u-url\">\n      <span class=\"value-title\" title=\"http://microformats.org/\"> </span>\n      Article permalink\n    </p>\n    <p class=\"u-url\">\n        <span class=\"value\">http://microformats.org/</span> - \n        <span class=\"value\">2012/06/25/microformats-org-at-7</span> \n    </p> \n\n    <p><a class=\"u-url\" href=\"http://microformats.org/2012/06/25/microformats-org-at-7\">Article permalink</a></p>\n\n    <img src=\"images/logo.gif\" alt=\"company logos\" usemap=\"#logomap\" />\n    <map name=\"logomap\">\n        <area class=\"u-url\" shape=\"rect\" coords=\"0,0,82,126\" href=\"http://microformats.org/\" alt=\"microformats.org\" />\n    </map>\n\n    <img class=\"u-photo\" src=\"images/logo.gif\" alt=\"company logos\" />\n\n    <object class=\"u-url\" data=\"http://microformats.org/wiki/microformats2-parsing\"></object>\n\n    <abbr class=\"u-url\" title=\"http://microformats.org/wiki/value-class-pattern\">value-class-pattern</abbr> \n    <data class=\"u-url\" value=\"http://microformats.org/wiki/\"></data>\n    <p class=\"u-url\">http://microformats.org/discuss</p>\n</div>";
+   var expected = {"items":[{"type":["h-entry"],"properties":{"name":["microformats.org at 7"],"url":["http://microformats.org/","http://microformats.org/2012/06/25/microformats-org-at-7","http://microformats.org/2012/06/25/microformats-org-at-7","http://microformats.org/","http://microformats.org/wiki/microformats2-parsing","http://microformats.org/wiki/value-class-pattern","http://microformats.org/wiki/","http://microformats.org/discuss"],"photo":["http://example.com/images/logo.gif"]}}],"rels":{},"rel-urls":{}};
+
+   it('u-property', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-entry-urlincontent.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-entry-urlincontent.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-entry/urlincontent
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-entry', function() {
-   var htmlFragment = "<div class=\"h-entry\">\n    <h1><a class=\"p-name\">Expanding URLs within HTML content</a></h1>\n    <div class=\"e-content\">\n        <ul>\n            <li><a href=\"http://www.w3.org/\">Should not change: http://www.w3.org/</a></li>\n            <li><a href=\"http://example.com/\">Should not change: http://example.com/</a></li>\n            <li><a href=\"test.html\">File relative: test.html = http://example.com/test.html</a></li>\n            <li><a href=\"/test/test.html\">Directory relative: /test/test.html = http://example.com/test/test.html</a></li>\n            <li><a href=\"/test.html\">Relative to root: /test.html = http://example.com/test.html</a></li>\n        </ul>\n        <img src=\"images/photo.gif\" />\n    </div>  \n</div>";
-   var expected = {"items":[{"type":["h-entry"],"properties":{"name":["Expanding URLs within HTML content"],"content":[{"value":"Should not change: http://www.w3.org/\n            Should not change: http://example.com/\n            File relative: test.html = http://example.com/test.html\n            Directory relative: /test/test.html = http://example.com/test/test.html\n            Relative to root: /test.html = http://example.com/test.html","html":"\n        <ul>\n            <li><a href=\"http://www.w3.org/\">Should not change: http://www.w3.org/</a></li>\n            <li><a href=\"http://example.com/\">Should not change: http://example.com/</a></li>\n            <li><a href=\"http://example.com/test.html\">File relative: test.html = http://example.com/test.html</a></li>\n            <li><a href=\"http://example.com/test/test.html\">Directory relative: /test/test.html = http://example.com/test/test.html</a></li>\n            <li><a href=\"http://example.com/test.html\">Relative to root: /test.html = http://example.com/test.html</a></li>\n        </ul>\n        <img src=\"http://example.com/images/photo.gif\" />\n    "}]}}],"rels":{},"rel-urls":{}};
-
-   it('urlincontent', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-entry/urlincontent
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-entry', function() {
+   var htmlFragment = "<div class=\"h-entry\">\n    <h1><a class=\"p-name\">Expanding URLs within HTML content</a></h1>\n    <div class=\"e-content\">\n        <ul>\n            <li><a href=\"http://www.w3.org/\">Should not change: http://www.w3.org/</a></li>\n            <li><a href=\"http://example.com/\">Should not change: http://example.com/</a></li>\n            <li><a href=\"test.html\">File relative: test.html = http://example.com/test.html</a></li>\n            <li><a href=\"/test/test.html\">Directory relative: /test/test.html = http://example.com/test/test.html</a></li>\n            <li><a href=\"/test.html\">Relative to root: /test.html = http://example.com/test.html</a></li>\n        </ul>\n        <img src=\"images/photo.gif\" />\n    </div>  \n</div>";
+   var expected = {"items":[{"type":["h-entry"],"properties":{"name":["Expanding URLs within HTML content"],"content":[{"value":"Should not change: http://www.w3.org/\n            Should not change: http://example.com/\n            File relative: test.html = http://example.com/test.html\n            Directory relative: /test/test.html = http://example.com/test/test.html\n            Relative to root: /test.html = http://example.com/test.html","html":"\n        <ul>\n            <li><a href=\"http://www.w3.org/\">Should not change: http://www.w3.org/</a></li>\n            <li><a href=\"http://example.com/\">Should not change: http://example.com/</a></li>\n            <li><a href=\"http://example.com/test.html\">File relative: test.html = http://example.com/test.html</a></li>\n            <li><a href=\"http://example.com/test/test.html\">Directory relative: /test/test.html = http://example.com/test/test.html</a></li>\n            <li><a href=\"http://example.com/test.html\">Relative to root: /test.html = http://example.com/test.html</a></li>\n        </ul>\n        <img src=\"http://example.com/images/photo.gif\" />\n    "}]}}],"rels":{},"rel-urls":{}};
+
+   it('urlincontent', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-event-ampm.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-event-ampm.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-event/ampm
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-event', function() {
-   var htmlFragment = "<span class=\"h-event\">\n    <span class=\"p-name\">The 4th Microformat party</span> will be on \n    <ul>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07:00:00pm \n        </span></li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07:00:00am \n        </span></li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07:00pm \n        </span></li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07pm \n        </span></li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">7pm \n        </span></li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">7:00pm \n        </span></li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07:00p.m. \n        </span></li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07:00PM \n        </span></li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">7:00am \n        </span></li>\n    </ul>\n</span>";
-   var expected = {"items":[{"type":["h-event"],"properties":{"name":["The 4th Microformat party"],"start":["2009-06-26 19:00:00","2009-06-26 07:00:00","2009-06-26 19:00","2009-06-26 19","2009-06-26 19","2009-06-26 19:00","2009-06-26 19:00","2009-06-26 19:00","2009-06-26 07:00"]}}],"rels":{},"rel-urls":{}};
-
-   it('ampm', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-event/ampm
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-event', function() {
+   var htmlFragment = "<span class=\"h-event\">\n    <span class=\"p-name\">The 4th Microformat party</span> will be on \n    <ul>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07:00:00pm \n        </span></li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07:00:00am \n        </span></li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07:00pm \n        </span></li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07pm \n        </span></li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">7pm \n        </span></li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">7:00pm \n        </span></li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07:00p.m. \n        </span></li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">07:00PM \n        </span></li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <span class=\"value\">7:00am \n        </span></li>\n    </ul>\n</span>";
+   var expected = {"items":[{"type":["h-event"],"properties":{"name":["The 4th Microformat party"],"start":["2009-06-26 19:00:00","2009-06-26 07:00:00","2009-06-26 19:00","2009-06-26 19","2009-06-26 19","2009-06-26 19:00","2009-06-26 19:00","2009-06-26 19:00","2009-06-26 07:00"]}}],"rels":{},"rel-urls":{}};
+
+   it('ampm', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-event-attendees.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-event-attendees.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-event/attendees
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-event', function() {
-   var htmlFragment = "<meta charset=\"utf-8\">\n<div class=\"h-event\">\n    <span class=\"p-name\">CPJ Online Press Freedom Summit</span>\n    (<time class=\"dt-start\" datetime=\"2012-10-10\">10 Nov 2012</time>) in\n    <span class=\"p-location\">San Francisco</span>.\n    Attendees:\n    <ul>\n        <li class=\"p-attendee h-card\">Brian Warner</li>\n        <li class=\"p-attendee h-card\">Kyle Machulis</li>\n        <li class=\"p-attendee h-card\">Tantek Çelik</li>\n        <li class=\"p-attendee h-card\">Sid Sutter</li>\n    </ul>\n</div>\n";
-   var expected = {"items":[{"type":["h-event"],"properties":{"name":["CPJ Online Press Freedom Summit"],"start":["2012-10-10"],"location":["San Francisco"],"attendee":[{"value":"Brian Warner","type":["h-card"],"properties":{"name":["Brian Warner"]}},{"value":"Kyle Machulis","type":["h-card"],"properties":{"name":["Kyle Machulis"]}},{"value":"Tantek Çelik","type":["h-card"],"properties":{"name":["Tantek Çelik"]}},{"value":"Sid Sutter","type":["h-card"],"properties":{"name":["Sid Sutter"]}}]}}],"rels":{},"rel-urls":{}};
-
-   it('attendees', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-event/attendees
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-event', function() {
+   var htmlFragment = "<meta charset=\"utf-8\">\n<div class=\"h-event\">\n    <span class=\"p-name\">CPJ Online Press Freedom Summit</span>\n    (<time class=\"dt-start\" datetime=\"2012-10-10\">10 Nov 2012</time>) in\n    <span class=\"p-location\">San Francisco</span>.\n    Attendees:\n    <ul>\n        <li class=\"p-attendee h-card\">Brian Warner</li>\n        <li class=\"p-attendee h-card\">Kyle Machulis</li>\n        <li class=\"p-attendee h-card\">Tantek Çelik</li>\n        <li class=\"p-attendee h-card\">Sid Sutter</li>\n    </ul>\n</div>\n";
+   var expected = {"items":[{"type":["h-event"],"properties":{"name":["CPJ Online Press Freedom Summit"],"start":["2012-10-10"],"location":["San Francisco"],"attendee":[{"value":"Brian Warner","type":["h-card"],"properties":{"name":["Brian Warner"]}},{"value":"Kyle Machulis","type":["h-card"],"properties":{"name":["Kyle Machulis"]}},{"value":"Tantek Çelik","type":["h-card"],"properties":{"name":["Tantek Çelik"]}},{"value":"Sid Sutter","type":["h-card"],"properties":{"name":["Sid Sutter"]}}]}}],"rels":{},"rel-urls":{}};
+
+   it('attendees', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-event-combining.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-event-combining.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-event/combining
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-event', function() {
-   var htmlFragment = "<div class=\"h-event\">\n  <a class=\"p-name u-url\" href=\"http://indiewebcamp.com/2012\">\n    IndieWebCamp 2012\n  </a>\n  from <time class=\"dt-start\">2012-06-30</time> \n  to <time class=\"dt-end\">2012-07-01</time> at \n  <span class=\"p-location h-card\">\n    <a class=\"p-name p-org u-url\" href=\"http://geoloqi.com/\">Geoloqi</a>, \n    <span class=\"p-street-address\">920 SW 3rd Ave. Suite 400</span>, \n    <span class=\"p-locality\">Portland</span>, \n    <abbr class=\"p-region\" title=\"Oregon\">OR</abbr>\n  </span>\n</div>";
-   var expected = {"items":[{"type":["h-event"],"properties":{"name":["IndieWebCamp 2012"],"url":["http://indiewebcamp.com/2012"],"start":["2012-06-30"],"end":["2012-07-01"],"location":[{"value":"Geoloqi","type":["h-card"],"properties":{"name":["Geoloqi"],"org":["Geoloqi"],"url":["http://geoloqi.com/"],"street-address":["920 SW 3rd Ave. Suite 400"],"locality":["Portland"],"region":["Oregon"]}}]}}],"rels":{},"rel-urls":{}};
-
-   it('combining', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-event/combining
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-event', function() {
+   var htmlFragment = "<div class=\"h-event\">\n  <a class=\"p-name u-url\" href=\"http://indiewebcamp.com/2012\">\n    IndieWebCamp 2012\n  </a>\n  from <time class=\"dt-start\">2012-06-30</time> \n  to <time class=\"dt-end\">2012-07-01</time> at \n  <span class=\"p-location h-card\">\n    <a class=\"p-name p-org u-url\" href=\"http://geoloqi.com/\">Geoloqi</a>, \n    <span class=\"p-street-address\">920 SW 3rd Ave. Suite 400</span>, \n    <span class=\"p-locality\">Portland</span>, \n    <abbr class=\"p-region\" title=\"Oregon\">OR</abbr>\n  </span>\n</div>";
+   var expected = {"items":[{"type":["h-event"],"properties":{"name":["IndieWebCamp 2012"],"url":["http://indiewebcamp.com/2012"],"start":["2012-06-30"],"end":["2012-07-01"],"location":[{"value":"Geoloqi","type":["h-card"],"properties":{"name":["Geoloqi"],"org":["Geoloqi"],"url":["http://geoloqi.com/"],"street-address":["920 SW 3rd Ave. Suite 400"],"locality":["Portland"],"region":["Oregon"]}}]}}],"rels":{},"rel-urls":{}};
+
+   it('combining', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-event-concatenate.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-event-concatenate.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-event/concatenate
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-event', function() {
-   var htmlFragment = "<span class=\"h-event\">\n <span class=\"p-name\">The 4th Microformat party</span> will be on \n <span class=\"dt-start\">\n  <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n  <time class=\"value\">19:00</time></span> to \n <span class=\"dt-end\"><time class=\"value\">22:00</time></span>.\n</span>";
-   var expected = {"items":[{"type":["h-event"],"properties":{"name":["The 4th Microformat party"],"start":["2009-06-26 19:00"],"end":["2009-06-26 22:00"]}}],"rels":{},"rel-urls":{}};
-
-   it('concatenate', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-event/concatenate
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-event', function() {
+   var htmlFragment = "<span class=\"h-event\">\n <span class=\"p-name\">The 4th Microformat party</span> will be on \n <span class=\"dt-start\">\n  <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n  <time class=\"value\">19:00</time></span> to \n <span class=\"dt-end\"><time class=\"value\">22:00</time></span>.\n</span>";
+   var expected = {"items":[{"type":["h-event"],"properties":{"name":["The 4th Microformat party"],"start":["2009-06-26 19:00"],"end":["2009-06-26 22:00"]}}],"rels":{},"rel-urls":{}};
+
+   it('concatenate', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-event-dates.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-event-dates.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-event/dates
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-event', function() {
-   var htmlFragment = "<section class=\"h-event\">\n\t<p><span class=\"p-name\">The 4th Microformat party</span> will be on:</p>\n\t<ul>\n\t\t<li><time class=\"dt-start\" datetime=\"2009-06-26T19:00-08:00\">26 July</time></li>\n\t\t<li><time class=\"dt-start\" datetime=\"2009-06-26T19:00-08\">26 July</time></li>\n\t\t<li><time class=\"dt-start\" datetime=\"2009-06-26T19:00-0800\">26 July</time></li>\n\t\t<li><time class=\"dt-start\" datetime=\"2009-06-26T19:00+0800\">26 July</time></li>\n\t\t<li><time class=\"dt-start\" datetime=\"2009-06-26T19:00+08:00\">26 July</time></li>\n\t\t<li><time class=\"dt-start\" datetime=\"2009-06-26T19:00Z\">26 July</time></li>\n\t\t<li><time class=\"dt-start\" datetime=\"2009-06-26t19:00-08:00\">26 July</time></li>\n\t\t<li><time class=\"dt-start\" datetime=\"2009-06-26 19:00:00-08:00\">26 July</time></li>\n\t</ul>\n</section>";
-   var expected = {"items":[{"type":["h-event"],"properties":{"name":["The 4th Microformat party"],"start":["2009-06-26 19:00-08:00","2009-06-26 19:00-08","2009-06-26 19:00-08:00","2009-06-26 19:00+08:00","2009-06-26 19:00+08:00","2009-06-26 19:00Z","2009-06-26 19:00-08:00","2009-06-26 19:00:00-08:00"]}}],"rels":{},"rel-urls":{}};
-
-   it('dates', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-event/dates
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-event', function() {
+   var htmlFragment = "<section class=\"h-event\">\n\t<p><span class=\"p-name\">The 4th Microformat party</span> will be on:</p>\n\t<ul>\n\t\t<li><time class=\"dt-start\" datetime=\"2009-06-26T19:00-08:00\">26 July</time></li>\n\t\t<li><time class=\"dt-start\" datetime=\"2009-06-26T19:00-08\">26 July</time></li>\n\t\t<li><time class=\"dt-start\" datetime=\"2009-06-26T19:00-0800\">26 July</time></li>\n\t\t<li><time class=\"dt-start\" datetime=\"2009-06-26T19:00+0800\">26 July</time></li>\n\t\t<li><time class=\"dt-start\" datetime=\"2009-06-26T19:00+08:00\">26 July</time></li>\n\t\t<li><time class=\"dt-start\" datetime=\"2009-06-26T19:00Z\">26 July</time></li>\n\t\t<li><time class=\"dt-start\" datetime=\"2009-06-26t19:00-08:00\">26 July</time></li>\n\t\t<li><time class=\"dt-start\" datetime=\"2009-06-26 19:00:00-08:00\">26 July</time></li>\n\t</ul>\n</section>";
+   var expected = {"items":[{"type":["h-event"],"properties":{"name":["The 4th Microformat party"],"start":["2009-06-26 19:00-08:00","2009-06-26 19:00-08","2009-06-26 19:00-08:00","2009-06-26 19:00+08:00","2009-06-26 19:00+08:00","2009-06-26 19:00Z","2009-06-26 19:00-08:00","2009-06-26 19:00:00-08:00"]}}],"rels":{},"rel-urls":{}};
+
+   it('dates', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-event-dt-property.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-event-dt-property.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-event/dt-property
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-event', function() {
-   var htmlFragment = "<span class=\"h-event\">\n    <span class=\"p-name\">The party</span> will be on \n    \n    <p class=\"dt-start\">\n      <span class=\"value-title\" title=\"2013-03-14\"> </span>\n      March 14th 2013\n    </p>\n    <p class=\"dt-start\">\n        <time class=\"value\" datetime=\"2013-06-25\">25 July</time>, from\n        <span class=\"value\">07:00:00am \n    </span></p>   \n    \n    <p>\n        <time class=\"dt-start\" datetime=\"2013-06-26\">26 June</time>\n        \n        <ins class=\"dt-start\" datetime=\"2013-06-27\">Just added</ins>, \n        <del class=\"dt-start\" datetime=\"2013-06-28\">Removed</del>\n    </p>\n    <abbr class=\"dt-start\" title=\"2013-06-29\">June 29</abbr> \n    <data class=\"dt-start\" value=\"2013-07-01\"></data>\n    <p class=\"dt-start\">2013-07-02</p>\n    \n</span>";
-   var expected = {"items":[{"type":["h-event"],"properties":{"name":["The party"],"start":["2013-03-14","2013-06-25 07:00:00","2013-06-26","2013-06-27","2013-06-28","2013-06-29","2013-07-01","2013-07-02"]}}],"rels":{},"rel-urls":{}};
-
-   it('dt-property', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-event/dt-property
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-event', function() {
+   var htmlFragment = "<span class=\"h-event\">\n    <span class=\"p-name\">The party</span> will be on \n    \n    <p class=\"dt-start\">\n      <span class=\"value-title\" title=\"2013-03-14\"> </span>\n      March 14th 2013\n    </p>\n    <p class=\"dt-start\">\n        <time class=\"value\" datetime=\"2013-06-25\">25 July</time>, from\n        <span class=\"value\">07:00:00am \n    </span></p>   \n    \n    <p>\n        <time class=\"dt-start\" datetime=\"2013-06-26\">26 June</time>\n        \n        <ins class=\"dt-start\" datetime=\"2013-06-27\">Just added</ins>, \n        <del class=\"dt-start\" datetime=\"2013-06-28\">Removed</del>\n    </p>\n    <abbr class=\"dt-start\" title=\"2013-06-29\">June 29</abbr> \n    <data class=\"dt-start\" value=\"2013-07-01\"></data>\n    <p class=\"dt-start\">2013-07-02</p>\n    \n</span>";
+   var expected = {"items":[{"type":["h-event"],"properties":{"name":["The party"],"start":["2013-03-14","2013-06-25 07:00:00","2013-06-26","2013-06-27","2013-06-28","2013-06-29","2013-07-01","2013-07-02"]}}],"rels":{},"rel-urls":{}};
+
+   it('dt-property', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-event-justahyperlink.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-event-justahyperlink.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-event/justahyperlink
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-event', function() {
-   var htmlFragment = "<a class=\"h-event\" href=\"http://indiewebcamp.com/2012\">IndieWebCamp 2012</a>";
-   var expected = {"items":[{"type":["h-event"],"properties":{"name":["IndieWebCamp 2012"],"url":["http://indiewebcamp.com/2012"]}}],"rels":{},"rel-urls":{}};
-
-   it('justahyperlink', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-event/justahyperlink
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-event', function() {
+   var htmlFragment = "<a class=\"h-event\" href=\"http://indiewebcamp.com/2012\">IndieWebCamp 2012</a>";
+   var expected = {"items":[{"type":["h-event"],"properties":{"name":["IndieWebCamp 2012"],"url":["http://indiewebcamp.com/2012"]}}],"rels":{},"rel-urls":{}};
+
+   it('justahyperlink', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-event-justaname.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-event-justaname.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-event/justaname
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-event', function() {
-   var htmlFragment = "<p class=\"h-event\">IndieWebCamp 2012</p>";
-   var expected = {"items":[{"type":["h-event"],"properties":{"name":["IndieWebCamp 2012"]}}],"rels":{},"rel-urls":{}};
-
-   it('justaname', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-event/justaname
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-event', function() {
+   var htmlFragment = "<p class=\"h-event\">IndieWebCamp 2012</p>";
+   var expected = {"items":[{"type":["h-event"],"properties":{"name":["IndieWebCamp 2012"]}}],"rels":{},"rel-urls":{}};
+
+   it('justaname', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-event-time.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-event-time.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-event/time
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-event', function() {
-   var htmlFragment = "<span class=\"h-event\">\n    <span class=\"p-name\">The 4th Microformat party</span> will be on \n    <ul>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00:00-08:00</time> \n        </li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00:00-0800</time> \n        </li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00:00+0800</time> \n        </li> \n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00:00Z</time> \n        </li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00:00</time> \n        </li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00-08:00</time> \n        </li> \n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00+08:00</time> \n        </li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00Z</time> \n        </li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00</time> \n        </li>  \n        <li>\n            <time class=\"dt-end\" datetime=\"2013-034\">3 February 2013</time>\n        </li>\n        <li>\n            <time class=\"dt-end\" datetime=\"2013-06-27 15:34\">26 July 2013</time>\n        </li>              \n    </ul>\n</span>";
-   var expected = {"items":[{"type":["h-event"],"properties":{"name":["The 4th Microformat party"],"start":["2009-06-26 19:00:00-08:00","2009-06-26 19:00:00-08:00","2009-06-26 19:00:00+08:00","2009-06-26 19:00:00Z","2009-06-26 19:00:00","2009-06-26 19:00-08:00","2009-06-26 19:00+08:00","2009-06-26 19:00Z","2009-06-26 19:00"],"end":["2013-034","2013-06-27 15:34"]}}],"rels":{},"rel-urls":{}};
-
-   it('time', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-event/time
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-event', function() {
+   var htmlFragment = "<span class=\"h-event\">\n    <span class=\"p-name\">The 4th Microformat party</span> will be on \n    <ul>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00:00-08:00</time> \n        </li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00:00-0800</time> \n        </li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00:00+0800</time> \n        </li> \n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00:00Z</time> \n        </li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00:00</time> \n        </li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00-08:00</time> \n        </li> \n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00+08:00</time> \n        </li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00Z</time> \n        </li>\n        <li class=\"dt-start\">\n            <time class=\"value\" datetime=\"2009-06-26\">26 July</time>, from\n            <time class=\"value\">19:00</time> \n        </li>  \n        <li>\n            <time class=\"dt-end\" datetime=\"2013-034\">3 February 2013</time>\n        </li>\n        <li>\n            <time class=\"dt-end\" datetime=\"2013-06-27 15:34\">26 July 2013</time>\n        </li>              \n    </ul>\n</span>";
+   var expected = {"items":[{"type":["h-event"],"properties":{"name":["The 4th Microformat party"],"start":["2009-06-26 19:00:00-08:00","2009-06-26 19:00:00-08:00","2009-06-26 19:00:00+08:00","2009-06-26 19:00:00Z","2009-06-26 19:00:00","2009-06-26 19:00-08:00","2009-06-26 19:00+08:00","2009-06-26 19:00Z","2009-06-26 19:00"],"end":["2013-034","2013-06-27 15:34"]}}],"rels":{},"rel-urls":{}};
+
+   it('time', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-feed-implied-title.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-feed-implied-title.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-feed/implied-title
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-feed', function() {
-   var htmlFragment = "\n<html>\n\t<head>\n\t\t<title>microformats blog</title>\n\t</head>\n\t<body>\n\t<section class=\"h-feed\">\n\t\t\n\t\t<div class=\"h-entry\">\n\t\t    <h1><a class=\"p-name u-url\" href=\"http://microformats.org/2012/06/25/microformats-org-at-7\">microformats.org at 7</a></h1>\n\t\t    <div class=\"e-content\">\n\t\t        <p class=\"p-summary\">Last week the microformats.org community \n\t\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t\t            San Francisco and recognized accomplishments, challenges, and \n\t\t            opportunities.</p>\n\t\t\n\t\t        <p>The microformats tagline “humans first, machines second” \n\t\t            forms the basis of many of our \n\t\t            <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n\t\t            in that regard, we’d like to recognize a few people and \n\t\t            thank them for their years of volunteer service </p>\n\t\t    </div>  \n\t\t    <p>Updated \n\t\t        <time class=\"dt-updated\" datetime=\"2012-06-25T17:08:26\">June 25th, 2012</time>\n\t\t    </p>\n\t\t</div>\n\t\t\n\t</section>\n\t</body>\n</html>";
-   var expected = {"items":[{"type":["h-feed"],"properties":{"name":["microformats blog"]},"children":[{"value":"microformats.org at 7\n\t\t    \n\t\t        Last week the microformats.org community \n\t\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t\t            San Francisco and recognized accomplishments, challenges, and \n\t\t            opportunities.\n\t\t\n\t\t        The microformats tagline “humans first, machines second” \n\t\t            forms the basis of many of our \n\t\t            principles, and \n\t\t            in that regard, we’d like to recognize a few people and \n\t\t            thank them for their years of volunteer service \n\t\t      \n\t\t    Updated \n\t\t        June 25th, 2012","type":["h-entry"],"properties":{"name":["microformats.org at 7"],"url":["http://microformats.org/2012/06/25/microformats-org-at-7"],"content":[{"value":"Last week the microformats.org community \n\t\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t\t            San Francisco and recognized accomplishments, challenges, and \n\t\t            opportunities.\n\t\t\n\t\t        The microformats tagline “humans first, machines second” \n\t\t            forms the basis of many of our \n\t\t            principles, and \n\t\t            in that regard, we’d like to recognize a few people and \n\t\t            thank them for their years of volunteer service","html":"\n\t\t        <p class=\"p-summary\">Last week the microformats.org community \n\t\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t\t            San Francisco and recognized accomplishments, challenges, and \n\t\t            opportunities.</p>\n\t\t\n\t\t        <p>The microformats tagline “humans first, machines second” \n\t\t            forms the basis of many of our \n\t\t            <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n\t\t            in that regard, we’d like to recognize a few people and \n\t\t            thank them for their years of volunteer service </p>\n\t\t    "}],"summary":["Last week the microformats.org community \n\t\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t\t            San Francisco and recognized accomplishments, challenges, and \n\t\t            opportunities."],"updated":["2012-06-25 17:08:26"]}}]}],"rels":{},"rel-urls":{}};
-
-   it('implied-title', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-feed/implied-title
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-feed', function() {
+   var htmlFragment = "\n<html>\n\t<head>\n\t\t<title>microformats blog</title>\n\t</head>\n\t<body>\n\t<section class=\"h-feed\">\n\t\t\n\t\t<div class=\"h-entry\">\n\t\t    <h1><a class=\"p-name u-url\" href=\"http://microformats.org/2012/06/25/microformats-org-at-7\">microformats.org at 7</a></h1>\n\t\t    <div class=\"e-content\">\n\t\t        <p class=\"p-summary\">Last week the microformats.org community \n\t\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t\t            San Francisco and recognized accomplishments, challenges, and \n\t\t            opportunities.</p>\n\t\t\n\t\t        <p>The microformats tagline “humans first, machines second” \n\t\t            forms the basis of many of our \n\t\t            <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n\t\t            in that regard, we’d like to recognize a few people and \n\t\t            thank them for their years of volunteer service </p>\n\t\t    </div>  \n\t\t    <p>Updated \n\t\t        <time class=\"dt-updated\" datetime=\"2012-06-25T17:08:26\">June 25th, 2012</time>\n\t\t    </p>\n\t\t</div>\n\t\t\n\t</section>\n\t</body>\n</html>";
+   var expected = {"items":[{"type":["h-feed"],"properties":{"name":["microformats blog"]},"children":[{"value":"microformats.org at 7\n\t\t    \n\t\t        Last week the microformats.org community \n\t\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t\t            San Francisco and recognized accomplishments, challenges, and \n\t\t            opportunities.\n\t\t\n\t\t        The microformats tagline “humans first, machines second” \n\t\t            forms the basis of many of our \n\t\t            principles, and \n\t\t            in that regard, we’d like to recognize a few people and \n\t\t            thank them for their years of volunteer service \n\t\t      \n\t\t    Updated \n\t\t        June 25th, 2012","type":["h-entry"],"properties":{"name":["microformats.org at 7"],"url":["http://microformats.org/2012/06/25/microformats-org-at-7"],"content":[{"value":"Last week the microformats.org community \n\t\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t\t            San Francisco and recognized accomplishments, challenges, and \n\t\t            opportunities.\n\t\t\n\t\t        The microformats tagline “humans first, machines second” \n\t\t            forms the basis of many of our \n\t\t            principles, and \n\t\t            in that regard, we’d like to recognize a few people and \n\t\t            thank them for their years of volunteer service","html":"\n\t\t        <p class=\"p-summary\">Last week the microformats.org community \n\t\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t\t            San Francisco and recognized accomplishments, challenges, and \n\t\t            opportunities.</p>\n\t\t\n\t\t        <p>The microformats tagline “humans first, machines second” \n\t\t            forms the basis of many of our \n\t\t            <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n\t\t            in that regard, we’d like to recognize a few people and \n\t\t            thank them for their years of volunteer service </p>\n\t\t    "}],"summary":["Last week the microformats.org community \n\t\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t\t            San Francisco and recognized accomplishments, challenges, and \n\t\t            opportunities."],"updated":["2012-06-25 17:08:26"]}}]}],"rels":{},"rel-urls":{}};
+
+   it('implied-title', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-feed-simple.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-feed-simple.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-feed/simple
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-feed', function() {
-   var htmlFragment = "<section class=\"h-feed\">\n\t<h1 class=\"p-name\">Microformats blog</h1>\n\t<a class=\"p-author h-card\" href=\"http://tantek.com/\">Tantek</a>\n\t<a class=\"u-url\" href=\"http://microformats.org/blog\">permlink</a>\n\t<img class=\"u-photo\" src=\"photo.jpeg\"/>\n\t\n\t<div class=\"h-entry\">\n\t    <h1><a class=\"p-name u-url\" href=\"http://microformats.org/2012/06/25/microformats-org-at-7\">microformats.org at 7</a></h1>\n\t    <div class=\"e-content\">\n\t        <p class=\"p-summary\">Last week the microformats.org community \n\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t            San Francisco and recognized accomplishments, challenges, and \n\t            opportunities.</p>\n\t\n\t        <p>The microformats tagline “humans first, machines second” \n\t            forms the basis of many of our \n\t            <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n\t            in that regard, we’d like to recognize a few people and \n\t            thank them for their years of volunteer service </p>\n\t    </div>  \n\t    <p>Updated \n\t        <time class=\"dt-updated\" datetime=\"2012-06-25T17:08:26\">June 25th, 2012</time>\n\t    </p>\n\t</div>\n\t\n</section>";
-   var expected = {"items":[{"type":["h-feed"],"properties":{"name":["Microformats blog"],"author":[{"value":"Tantek","type":["h-card"],"properties":{"name":["Tantek"],"url":["http://tantek.com/"]}}],"url":["http://microformats.org/blog"],"photo":["http://example.com/photo.jpeg"]},"children":[{"value":"microformats.org at 7\n\t    \n\t        Last week the microformats.org community \n\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t            San Francisco and recognized accomplishments, challenges, and \n\t            opportunities.\n\t\n\t        The microformats tagline “humans first, machines second” \n\t            forms the basis of many of our \n\t            principles, and \n\t            in that regard, we’d like to recognize a few people and \n\t            thank them for their years of volunteer service \n\t      \n\t    Updated \n\t        June 25th, 2012","type":["h-entry"],"properties":{"name":["microformats.org at 7"],"url":["http://microformats.org/2012/06/25/microformats-org-at-7"],"content":[{"value":"Last week the microformats.org community \n\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t            San Francisco and recognized accomplishments, challenges, and \n\t            opportunities.\n\t\n\t        The microformats tagline “humans first, machines second” \n\t            forms the basis of many of our \n\t            principles, and \n\t            in that regard, we’d like to recognize a few people and \n\t            thank them for their years of volunteer service","html":"\n\t        <p class=\"p-summary\">Last week the microformats.org community \n\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t            San Francisco and recognized accomplishments, challenges, and \n\t            opportunities.</p>\n\t\n\t        <p>The microformats tagline “humans first, machines second” \n\t            forms the basis of many of our \n\t            <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n\t            in that regard, we’d like to recognize a few people and \n\t            thank them for their years of volunteer service </p>\n\t    "}],"summary":["Last week the microformats.org community \n\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t            San Francisco and recognized accomplishments, challenges, and \n\t            opportunities."],"updated":["2012-06-25 17:08:26"]}}]}],"rels":{},"rel-urls":{}};
-
-   it('simple', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-feed/simple
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-feed', function() {
+   var htmlFragment = "<section class=\"h-feed\">\n\t<h1 class=\"p-name\">Microformats blog</h1>\n\t<a class=\"p-author h-card\" href=\"http://tantek.com/\">Tantek</a>\n\t<a class=\"u-url\" href=\"http://microformats.org/blog\">permlink</a>\n\t<img class=\"u-photo\" src=\"photo.jpeg\"/>\n\t\n\t<div class=\"h-entry\">\n\t    <h1><a class=\"p-name u-url\" href=\"http://microformats.org/2012/06/25/microformats-org-at-7\">microformats.org at 7</a></h1>\n\t    <div class=\"e-content\">\n\t        <p class=\"p-summary\">Last week the microformats.org community \n\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t            San Francisco and recognized accomplishments, challenges, and \n\t            opportunities.</p>\n\t\n\t        <p>The microformats tagline “humans first, machines second” \n\t            forms the basis of many of our \n\t            <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n\t            in that regard, we’d like to recognize a few people and \n\t            thank them for their years of volunteer service </p>\n\t    </div>  \n\t    <p>Updated \n\t        <time class=\"dt-updated\" datetime=\"2012-06-25T17:08:26\">June 25th, 2012</time>\n\t    </p>\n\t</div>\n\t\n</section>";
+   var expected = {"items":[{"type":["h-feed"],"properties":{"name":["Microformats blog"],"author":[{"value":"Tantek","type":["h-card"],"properties":{"name":["Tantek"],"url":["http://tantek.com/"]}}],"url":["http://microformats.org/blog"],"photo":["http://example.com/photo.jpeg"]},"children":[{"value":"microformats.org at 7\n\t    \n\t        Last week the microformats.org community \n\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t            San Francisco and recognized accomplishments, challenges, and \n\t            opportunities.\n\t\n\t        The microformats tagline “humans first, machines second” \n\t            forms the basis of many of our \n\t            principles, and \n\t            in that regard, we’d like to recognize a few people and \n\t            thank them for their years of volunteer service \n\t      \n\t    Updated \n\t        June 25th, 2012","type":["h-entry"],"properties":{"name":["microformats.org at 7"],"url":["http://microformats.org/2012/06/25/microformats-org-at-7"],"content":[{"value":"Last week the microformats.org community \n\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t            San Francisco and recognized accomplishments, challenges, and \n\t            opportunities.\n\t\n\t        The microformats tagline “humans first, machines second” \n\t            forms the basis of many of our \n\t            principles, and \n\t            in that regard, we’d like to recognize a few people and \n\t            thank them for their years of volunteer service","html":"\n\t        <p class=\"p-summary\">Last week the microformats.org community \n\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t            San Francisco and recognized accomplishments, challenges, and \n\t            opportunities.</p>\n\t\n\t        <p>The microformats tagline “humans first, machines second” \n\t            forms the basis of many of our \n\t            <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n\t            in that regard, we’d like to recognize a few people and \n\t            thank them for their years of volunteer service </p>\n\t    "}],"summary":["Last week the microformats.org community \n\t            celebrated its 7th birthday at a gathering hosted by Mozilla in \n\t            San Francisco and recognized accomplishments, challenges, and \n\t            opportunities."],"updated":["2012-06-25 17:08:26"]}}]}],"rels":{},"rel-urls":{}};
+
+   it('simple', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-geo-abbrpattern.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-geo-abbrpattern.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-geo/abbrpattern
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-geo', function() {
-   var htmlFragment = "<meta charset=\"utf-8\">\n<p class=\"h-geo\">\n <abbr class=\"p-latitude\" title=\"37.408183\">N 37° 24.491</abbr>,  \n <abbr class=\"p-longitude\" title=\"-122.13855\">W 122° 08.313</abbr>\n</p>";
-   var expected = {"items":[{"type":["h-geo"],"properties":{"latitude":["37.408183"],"longitude":["-122.13855"],"name":["N 37° 24.491,  \n W 122° 08.313"]}}],"rels":{},"rel-urls":{}};
-
-   it('abbrpattern', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-geo/abbrpattern
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-geo', function() {
+   var htmlFragment = "<meta charset=\"utf-8\">\n<p class=\"h-geo\">\n <abbr class=\"p-latitude\" title=\"37.408183\">N 37° 24.491</abbr>,  \n <abbr class=\"p-longitude\" title=\"-122.13855\">W 122° 08.313</abbr>\n</p>";
+   var expected = {"items":[{"type":["h-geo"],"properties":{"latitude":["37.408183"],"longitude":["-122.13855"],"name":["N 37° 24.491,  \n W 122° 08.313"]}}],"rels":{},"rel-urls":{}};
+
+   it('abbrpattern', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-geo-altitude.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-geo-altitude.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-geo/altitude
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-geo', function() {
-   var htmlFragment = "<p>My favourite hill in the lakes is \n    <span class=\"h-geo\">\n        <span class=\"p-name\">Pen-y-ghent</span> \n        (Geo: <span class=\"p-latitude\">54.155278</span>,\n        <span class=\"p-longitude\">-2.249722</span>). It\n        raises to <span class=\"p-altitude\">694</span>m.\n  </span>\n</p>";
-   var expected = {"items":[{"type":["h-geo"],"properties":{"name":["Pen-y-ghent"],"latitude":["54.155278"],"longitude":["-2.249722"],"altitude":["694"]}}],"rels":{},"rel-urls":{}};
-
-   it('altitude', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-geo/altitude
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-geo', function() {
+   var htmlFragment = "<p>My favourite hill in the lakes is \n    <span class=\"h-geo\">\n        <span class=\"p-name\">Pen-y-ghent</span> \n        (Geo: <span class=\"p-latitude\">54.155278</span>,\n        <span class=\"p-longitude\">-2.249722</span>). It\n        raises to <span class=\"p-altitude\">694</span>m.\n  </span>\n</p>";
+   var expected = {"items":[{"type":["h-geo"],"properties":{"name":["Pen-y-ghent"],"latitude":["54.155278"],"longitude":["-2.249722"],"altitude":["694"]}}],"rels":{},"rel-urls":{}};
+
+   it('altitude', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-geo-hidden.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-geo-hidden.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-geo/hidden
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-geo', function() {
-   var htmlFragment = "<p>\n    <span class=\"h-geo\">The Bricklayer's Arms\n        <span class=\"p-latitude\">\n            <span class=\"value-title\" title=\"51.513458\"> </span> \n        </span>\n        <span class=\"p-longitude\">\n            <span class=\"value-title\" title=\"-0.14812\"> </span>\n        </span>\n    </span>\n</p>";
-   var expected = {"items":[{"type":["h-geo"],"properties":{"latitude":["51.513458"],"longitude":["-0.14812"],"name":["The Bricklayer's Arms"]}}],"rels":{},"rel-urls":{}};
-
-   it('hidden', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-geo/hidden
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-geo', function() {
+   var htmlFragment = "<p>\n    <span class=\"h-geo\">The Bricklayer's Arms\n        <span class=\"p-latitude\">\n            <span class=\"value-title\" title=\"51.513458\"> </span> \n        </span>\n        <span class=\"p-longitude\">\n            <span class=\"value-title\" title=\"-0.14812\"> </span>\n        </span>\n    </span>\n</p>";
+   var expected = {"items":[{"type":["h-geo"],"properties":{"latitude":["51.513458"],"longitude":["-0.14812"],"name":["The Bricklayer's Arms"]}}],"rels":{},"rel-urls":{}};
+
+   it('hidden', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-geo-justaname.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-geo-justaname.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-geo/justaname
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-geo', function() {
-   var htmlFragment = "<p>On my way to The Bricklayer's Arms\n    (Geo: <span class=\"h-geo\">51.513458;-0.14812</span>)\n</p>";
-   var expected = {"items":[{"type":["h-geo"],"properties":{"name":["51.513458;-0.14812"]}}],"rels":{},"rel-urls":{}};
-
-   it('justaname', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-geo/justaname
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-geo', function() {
+   var htmlFragment = "<p>On my way to The Bricklayer's Arms\n    (Geo: <span class=\"h-geo\">51.513458;-0.14812</span>)\n</p>";
+   var expected = {"items":[{"type":["h-geo"],"properties":{"name":["51.513458;-0.14812"]}}],"rels":{},"rel-urls":{}};
+
+   it('justaname', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-geo-simpleproperties.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-geo-simpleproperties.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-geo/simpleproperties
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-geo', function() {
-   var htmlFragment = "<p class=\"h-geo\">We are meeting at \n    <span class=\"p-name\">The Bricklayer's Arms</span>\n    (Geo: <span class=\"p-latitude\">51.513458</span>:\n    <span class=\"p-longitude\">-0.14812</span>)\n</p>";
-   var expected = {"items":[{"type":["h-geo"],"properties":{"name":["The Bricklayer's Arms"],"latitude":["51.513458"],"longitude":["-0.14812"]}}],"rels":{},"rel-urls":{}};
-
-   it('simpleproperties', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-geo/simpleproperties
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-geo', function() {
+   var htmlFragment = "<p class=\"h-geo\">We are meeting at \n    <span class=\"p-name\">The Bricklayer's Arms</span>\n    (Geo: <span class=\"p-latitude\">51.513458</span>:\n    <span class=\"p-longitude\">-0.14812</span>)\n</p>";
+   var expected = {"items":[{"type":["h-geo"],"properties":{"name":["The Bricklayer's Arms"],"latitude":["51.513458"],"longitude":["-0.14812"]}}],"rels":{},"rel-urls":{}};
+
+   it('simpleproperties', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-geo-valuetitleclass.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-geo-valuetitleclass.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-geo/valuetitleclass
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-geo', function() {
-   var htmlFragment = "<meta charset=\"utf-8\">\n<p>\n    <span class=\"h-geo\">\n        <span class=\"p-latitude\">\n            <span class=\"value-title\" title=\"51.513458\">N 51° 51.345</span>, \n        </span>\n        <span class=\"p-longitude\">\n            <span class=\"value-title\" title=\"-0.14812\">W -0° 14.812</span>\n        </span>\n    </span>\n</p>";
-   var expected = {"items":[{"type":["h-geo"],"properties":{"latitude":["51.513458"],"longitude":["-0.14812"],"name":["N 51° 51.345, \n        \n        \n            W -0° 14.812"]}}],"rels":{},"rel-urls":{}};
-
-   it('valuetitleclass', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-geo/valuetitleclass
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-geo', function() {
+   var htmlFragment = "<meta charset=\"utf-8\">\n<p>\n    <span class=\"h-geo\">\n        <span class=\"p-latitude\">\n            <span class=\"value-title\" title=\"51.513458\">N 51° 51.345</span>, \n        </span>\n        <span class=\"p-longitude\">\n            <span class=\"value-title\" title=\"-0.14812\">W -0° 14.812</span>\n        </span>\n    </span>\n</p>";
+   var expected = {"items":[{"type":["h-geo"],"properties":{"latitude":["51.513458"],"longitude":["-0.14812"],"name":["N 51° 51.345, \n        \n        \n            W -0° 14.812"]}}],"rels":{},"rel-urls":{}};
+
+   it('valuetitleclass', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-news-all.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-news-all.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-news/all
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-news', function() {
-   var htmlFragment = "<div class=\"h-news\">\n    <div class=\"p-entry h-entry\">\n        <h1><a class=\"p-name u-url\" href=\"http://microformats.org/2012/06/25/microformats-org-at-7\">microformats.org at 7</a></h1>\n        <div class=\"e-content\">\n            <p class=\"p-summary\">Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.</p>\n\n            <p>The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service </p>\n        </div>  \n        <p>Updated \n            <time class=\"dt-updated\" datetime=\"2012-06-25T17:08:26\">June 25th, 2012</time> by\n            <a class=\"p-author h-card\" href=\"http://tantek.com/\">Tantek</a>\n        </p>\n    </div>\n\n    <p>\n        <span class=\"p-dateline h-adr\">\n            <span class=\"p-locality\">San Francisco</span>, \n            <span class=\"p-region\">CA</span> \n        </span>\n        (Geo: <span class=\"p-geo\">37.774921;-122.445202</span>) \n        <span class=\"p-source-org h-card\">\n            <a class=\"p-name u-url\" href=\"http://microformats.org/\">microformats.org</a>\n        </span>\n    </p>\n    <p>\n        <a class=\"u-principles\" href=\"http://microformats.org/wiki/Category:public_domain_license\">Publishing policy</a>\n    </p>\n</div>";
-   var expected = {"items":[{"type":["h-news"],"properties":{"entry":[{"value":"microformats.org at 7","type":["h-entry"],"properties":{"name":["microformats.org at 7"],"url":["http://microformats.org/2012/06/25/microformats-org-at-7"],"content":[{"value":"Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.\n\n            The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                principles, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service","html":"\n            <p class=\"p-summary\">Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.</p>\n\n            <p>The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service </p>\n        "}],"summary":["Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities."],"updated":["2012-06-25 17:08:26"],"author":[{"value":"Tantek","type":["h-card"],"properties":{"name":["Tantek"],"url":["http://tantek.com/"]}}]}}],"dateline":[{"value":"San Francisco, \n            CA","type":["h-adr"],"properties":{"locality":["San Francisco"],"region":["CA"],"name":["San Francisco, \n            CA"]}}],"geo":["37.774921;-122.445202"],"source-org":[{"value":"microformats.org","type":["h-card"],"properties":{"name":["microformats.org"],"url":["http://microformats.org/"]}}],"principles":["http://microformats.org/wiki/Category:public_domain_license"],"name":["microformats.org at 7\n        \n            Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.\n\n            The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                principles, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service \n          \n        Updated \n            June 25th, 2012 by\n            Tantek\n        \n    \n\n    \n        \n            San Francisco, \n            CA \n        \n        (Geo: 37.774921;-122.445202) \n        \n            microformats.org\n        \n    \n    \n        Publishing policy"]}}],"rels":{},"rel-urls":{}};
-
-   it('all', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-news/all
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-news', function() {
+   var htmlFragment = "<div class=\"h-news\">\n    <div class=\"p-entry h-entry\">\n        <h1><a class=\"p-name u-url\" href=\"http://microformats.org/2012/06/25/microformats-org-at-7\">microformats.org at 7</a></h1>\n        <div class=\"e-content\">\n            <p class=\"p-summary\">Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.</p>\n\n            <p>The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service </p>\n        </div>  \n        <p>Updated \n            <time class=\"dt-updated\" datetime=\"2012-06-25T17:08:26\">June 25th, 2012</time> by\n            <a class=\"p-author h-card\" href=\"http://tantek.com/\">Tantek</a>\n        </p>\n    </div>\n\n    <p>\n        <span class=\"p-dateline h-adr\">\n            <span class=\"p-locality\">San Francisco</span>, \n            <span class=\"p-region\">CA</span> \n        </span>\n        (Geo: <span class=\"p-geo\">37.774921;-122.445202</span>) \n        <span class=\"p-source-org h-card\">\n            <a class=\"p-name u-url\" href=\"http://microformats.org/\">microformats.org</a>\n        </span>\n    </p>\n    <p>\n        <a class=\"u-principles\" href=\"http://microformats.org/wiki/Category:public_domain_license\">Publishing policy</a>\n    </p>\n</div>";
+   var expected = {"items":[{"type":["h-news"],"properties":{"entry":[{"value":"microformats.org at 7","type":["h-entry"],"properties":{"name":["microformats.org at 7"],"url":["http://microformats.org/2012/06/25/microformats-org-at-7"],"content":[{"value":"Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.\n\n            The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                principles, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service","html":"\n            <p class=\"p-summary\">Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.</p>\n\n            <p>The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service </p>\n        "}],"summary":["Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities."],"updated":["2012-06-25 17:08:26"],"author":[{"value":"Tantek","type":["h-card"],"properties":{"name":["Tantek"],"url":["http://tantek.com/"]}}]}}],"dateline":[{"value":"San Francisco, \n            CA","type":["h-adr"],"properties":{"locality":["San Francisco"],"region":["CA"],"name":["San Francisco, \n            CA"]}}],"geo":["37.774921;-122.445202"],"source-org":[{"value":"microformats.org","type":["h-card"],"properties":{"name":["microformats.org"],"url":["http://microformats.org/"]}}],"principles":["http://microformats.org/wiki/Category:public_domain_license"],"name":["microformats.org at 7\n        \n            Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.\n\n            The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                principles, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service \n          \n        Updated \n            June 25th, 2012 by\n            Tantek\n        \n    \n\n    \n        \n            San Francisco, \n            CA \n        \n        (Geo: 37.774921;-122.445202) \n        \n            microformats.org\n        \n    \n    \n        Publishing policy"]}}],"rels":{},"rel-urls":{}};
+
+   it('all', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-news-minimum.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-news-minimum.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-news/minimum
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-news', function() {
-   var htmlFragment = "<div class=\"h-news\">\n    <div class=\"p-entry h-entry\">\n        <h1><a class=\"p-name u-url\" href=\"http://microformats.org/2012/06/25/microformats-org-at-7\">microformats.org at 7</a></h1>\n        <div class=\"e-content\">\n            <p class=\"p-summary\">Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.</p>\n\n            <p>The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service </p>\n        </div>  \n        <p>Updated \n            <time class=\"dt-updated\" datetime=\"2012-06-25T17:08:26\">June 25th, 2012</time> by\n            <a class=\"p-author h-card\" href=\"http://tantek.com/\">Tantek</a>\n        </p>\n    </div>\n    <p>\n        <a class=\"p-source-org h-card\" href=\"http://microformats.org/\">microformats.org</a> \n    </p>\n</div>";
-   var expected = {"items":[{"type":["h-news"],"properties":{"entry":[{"value":"microformats.org at 7","type":["h-entry"],"properties":{"name":["microformats.org at 7"],"url":["http://microformats.org/2012/06/25/microformats-org-at-7"],"content":[{"value":"Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.\n\n            The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                principles, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service","html":"\n            <p class=\"p-summary\">Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.</p>\n\n            <p>The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service </p>\n        "}],"summary":["Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities."],"updated":["2012-06-25 17:08:26"],"author":[{"value":"Tantek","type":["h-card"],"properties":{"name":["Tantek"],"url":["http://tantek.com/"]}}]}}],"source-org":[{"value":"microformats.org","type":["h-card"],"properties":{"name":["microformats.org"],"url":["http://microformats.org/"]}}],"name":["microformats.org at 7\n        \n            Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.\n\n            The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                principles, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service \n          \n        Updated \n            June 25th, 2012 by\n            Tantek\n        \n    \n    \n        microformats.org"]}}],"rels":{},"rel-urls":{}};
-
-   it('minimum', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-news/minimum
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-news', function() {
+   var htmlFragment = "<div class=\"h-news\">\n    <div class=\"p-entry h-entry\">\n        <h1><a class=\"p-name u-url\" href=\"http://microformats.org/2012/06/25/microformats-org-at-7\">microformats.org at 7</a></h1>\n        <div class=\"e-content\">\n            <p class=\"p-summary\">Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.</p>\n\n            <p>The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service </p>\n        </div>  \n        <p>Updated \n            <time class=\"dt-updated\" datetime=\"2012-06-25T17:08:26\">June 25th, 2012</time> by\n            <a class=\"p-author h-card\" href=\"http://tantek.com/\">Tantek</a>\n        </p>\n    </div>\n    <p>\n        <a class=\"p-source-org h-card\" href=\"http://microformats.org/\">microformats.org</a> \n    </p>\n</div>";
+   var expected = {"items":[{"type":["h-news"],"properties":{"entry":[{"value":"microformats.org at 7","type":["h-entry"],"properties":{"name":["microformats.org at 7"],"url":["http://microformats.org/2012/06/25/microformats-org-at-7"],"content":[{"value":"Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.\n\n            The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                principles, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service","html":"\n            <p class=\"p-summary\">Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.</p>\n\n            <p>The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                <a href=\"http://microformats.org/wiki/principles\">principles</a>, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service </p>\n        "}],"summary":["Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities."],"updated":["2012-06-25 17:08:26"],"author":[{"value":"Tantek","type":["h-card"],"properties":{"name":["Tantek"],"url":["http://tantek.com/"]}}]}}],"source-org":[{"value":"microformats.org","type":["h-card"],"properties":{"name":["microformats.org"],"url":["http://microformats.org/"]}}],"name":["microformats.org at 7\n        \n            Last week the microformats.org community \n                celebrated its 7th birthday at a gathering hosted by Mozilla in \n                San Francisco and recognized accomplishments, challenges, and \n                opportunities.\n\n            The microformats tagline “humans first, machines second” \n                forms the basis of many of our \n                principles, and \n                in that regard, we’d like to recognize a few people and \n                thank them for their years of volunteer service \n          \n        Updated \n            June 25th, 2012 by\n            Tantek\n        \n    \n    \n        microformats.org"]}}],"rels":{},"rel-urls":{}};
+
+   it('minimum', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-org-hyperlink.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-org-hyperlink.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-org/hyperlink
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-org', function() {
-   var htmlFragment = "<a class=\"h-org\" href=\"http://mozilla.org/\">Mozilla Foundation</a>";
-   var expected = {"items":[{"type":["h-org"],"properties":{"name":["Mozilla Foundation"],"url":["http://mozilla.org/"]}}],"rels":{},"rel-urls":{}};
-
-   it('hyperlink', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-org/hyperlink
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-org', function() {
+   var htmlFragment = "<a class=\"h-org\" href=\"http://mozilla.org/\">Mozilla Foundation</a>";
+   var expected = {"items":[{"type":["h-org"],"properties":{"name":["Mozilla Foundation"],"url":["http://mozilla.org/"]}}],"rels":{},"rel-urls":{}};
+
+   it('hyperlink', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-org-simple.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-org-simple.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-org/simple
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-org', function() {
-   var htmlFragment = "<span class=\"h-org\">Mozilla Foundation</span>";
-   var expected = {"items":[{"type":["h-org"],"properties":{"name":["Mozilla Foundation"]}}],"rels":{},"rel-urls":{}};
-
-   it('simple', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-org/simple
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-org', function() {
+   var htmlFragment = "<span class=\"h-org\">Mozilla Foundation</span>";
+   var expected = {"items":[{"type":["h-org"],"properties":{"name":["Mozilla Foundation"]}}],"rels":{},"rel-urls":{}};
+
+   it('simple', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-org-simpleproperties.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-org-simpleproperties.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-org/simpleproperties
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-org', function() {
-   var htmlFragment = "<p class=\"h-org\">\n    <span class=\"p-organization-name\">W3C</span> - \n    <span class=\"p-organization-unit\">CSS Working Group</span>\n</p>";
-   var expected = {"items":[{"type":["h-org"],"properties":{"organization-name":["W3C"],"organization-unit":["CSS Working Group"],"name":["W3C - \n    CSS Working Group"]}}],"rels":{},"rel-urls":{}};
-
-   it('simpleproperties', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-org/simpleproperties
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-org', function() {
+   var htmlFragment = "<p class=\"h-org\">\n    <span class=\"p-organization-name\">W3C</span> - \n    <span class=\"p-organization-unit\">CSS Working Group</span>\n</p>";
+   var expected = {"items":[{"type":["h-org"],"properties":{"organization-name":["W3C"],"organization-unit":["CSS Working Group"],"name":["W3C - \n    CSS Working Group"]}}],"rels":{},"rel-urls":{}};
+
+   it('simpleproperties', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-product-aggregate.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-product-aggregate.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-product/aggregate
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-product', function() {
-   var htmlFragment = "<meta charset=\"utf-8\">\n<div class=\"h-product\">\n    <h2 class=\"p-name\">Raspberry Pi</h2>\n    <img class=\"u-photo\" src=\"http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/RaspberryPi.jpg/320px-RaspberryPi.jpg\" />\n    <p class=\"e-description\">The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming.</p>\n    <a class=\"u-url\" href=\"http://www.raspberrypi.org/\">More info about the Raspberry Pi</a>\n    <p class=\"p-price\">£29.95</p>\n    <p class=\"p-review h-review-aggregate\">\n        <span class=\"p-rating h-rating\">\n            <span class=\"p-average\">9.2</span> out of \n            <span class=\"p-best\">10</span> \n            based on <span class=\"p-count\">178</span> reviews\n        </span>\n    </p>\n    <p>Categories: <span class=\"p-category\">Computer</span>, <span class=\"p-category\">Education</span></p>\n    <p class=\"p-brand h-card\">From: \n        <span class=\"p-name p-org\">The Raspberry Pi Foundation</span> - \n        <span class=\"p-locality\">Cambridge</span> \n        <span class=\"p-country-name\">UK</span>\n    </p>\n</div>";
-   var expected = {"items":[{"type":["h-product"],"properties":{"name":["Raspberry Pi"],"photo":["http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/RaspberryPi.jpg/320px-RaspberryPi.jpg"],"description":[{"value":"The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming.","html":"The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming."}],"url":["http://www.raspberrypi.org/"],"price":["£29.95"],"review":[{"value":"9.2 out of \n            10 \n            based on 178 reviews","type":["h-review-aggregate"],"properties":{"rating":[{"value":"9.2 out of \n            10 \n            based on 178 reviews","type":["h-rating"],"properties":{"average":["9.2"],"best":["10"],"count":["178"],"name":["9.2 out of \n            10 \n            based on 178 reviews"]}}],"name":["9.2 out of \n            10 \n            based on 178 reviews"]}}],"category":["Computer","Education"],"brand":[{"value":"The Raspberry Pi Foundation","type":["h-card"],"properties":{"name":["The Raspberry Pi Foundation"],"org":["The Raspberry Pi Foundation"],"locality":["Cambridge"],"country-name":["UK"]}}]}}],"rels":{},"rel-urls":{}};
-
-   it('aggregate', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-product/aggregate
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-product', function() {
+   var htmlFragment = "<meta charset=\"utf-8\">\n<div class=\"h-product\">\n    <h2 class=\"p-name\">Raspberry Pi</h2>\n    <img class=\"u-photo\" src=\"http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/RaspberryPi.jpg/320px-RaspberryPi.jpg\" />\n    <p class=\"e-description\">The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming.</p>\n    <a class=\"u-url\" href=\"http://www.raspberrypi.org/\">More info about the Raspberry Pi</a>\n    <p class=\"p-price\">£29.95</p>\n    <p class=\"p-review h-review-aggregate\">\n        <span class=\"p-rating h-rating\">\n            <span class=\"p-average\">9.2</span> out of \n            <span class=\"p-best\">10</span> \n            based on <span class=\"p-count\">178</span> reviews\n        </span>\n    </p>\n    <p>Categories: <span class=\"p-category\">Computer</span>, <span class=\"p-category\">Education</span></p>\n    <p class=\"p-brand h-card\">From: \n        <span class=\"p-name p-org\">The Raspberry Pi Foundation</span> - \n        <span class=\"p-locality\">Cambridge</span> \n        <span class=\"p-country-name\">UK</span>\n    </p>\n</div>";
+   var expected = {"items":[{"type":["h-product"],"properties":{"name":["Raspberry Pi"],"photo":["http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/RaspberryPi.jpg/320px-RaspberryPi.jpg"],"description":[{"value":"The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming.","html":"The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming."}],"url":["http://www.raspberrypi.org/"],"price":["£29.95"],"review":[{"value":"9.2 out of \n            10 \n            based on 178 reviews","type":["h-review-aggregate"],"properties":{"rating":[{"value":"9.2 out of \n            10 \n            based on 178 reviews","type":["h-rating"],"properties":{"average":["9.2"],"best":["10"],"count":["178"],"name":["9.2 out of \n            10 \n            based on 178 reviews"]}}],"name":["9.2 out of \n            10 \n            based on 178 reviews"]}}],"category":["Computer","Education"],"brand":[{"value":"The Raspberry Pi Foundation","type":["h-card"],"properties":{"name":["The Raspberry Pi Foundation"],"org":["The Raspberry Pi Foundation"],"locality":["Cambridge"],"country-name":["UK"]}}]}}],"rels":{},"rel-urls":{}};
+
+   it('aggregate', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-product-justahyperlink.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-product-justahyperlink.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-product/justahyperlink
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-product', function() {
-   var htmlFragment = "<a class=\"h-product\" href=\"http://www.raspberrypi.org/\">Raspberry Pi</a>";
-   var expected = {"items":[{"type":["h-product"],"properties":{"name":["Raspberry Pi"],"url":["http://www.raspberrypi.org/"]}}],"rels":{},"rel-urls":{}};
-
-   it('justahyperlink', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-product/justahyperlink
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-product', function() {
+   var htmlFragment = "<a class=\"h-product\" href=\"http://www.raspberrypi.org/\">Raspberry Pi</a>";
+   var expected = {"items":[{"type":["h-product"],"properties":{"name":["Raspberry Pi"],"url":["http://www.raspberrypi.org/"]}}],"rels":{},"rel-urls":{}};
+
+   it('justahyperlink', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-product-justaname.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-product-justaname.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-product/justaname
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-product', function() {
-   var htmlFragment = "<p class=\"h-product\">Raspberry Pi</p>";
-   var expected = {"items":[{"type":["h-product"],"properties":{"name":["Raspberry Pi"]}}],"rels":{},"rel-urls":{}};
-
-   it('justaname', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-product/justaname
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-product', function() {
+   var htmlFragment = "<p class=\"h-product\">Raspberry Pi</p>";
+   var expected = {"items":[{"type":["h-product"],"properties":{"name":["Raspberry Pi"]}}],"rels":{},"rel-urls":{}};
+
+   it('justaname', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-product-simpleproperties.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-product-simpleproperties.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-product/simpleproperties
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-product', function() {
-   var htmlFragment = "<meta charset=\"utf-8\">\n<div class=\"h-product\">\n    <h2 class=\"p-name\">Raspberry Pi</h2>\n    <img class=\"u-photo\" src=\"http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/RaspberryPi.jpg/320px-RaspberryPi.jpg\" />\n    <p class=\"e-description\">The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming.</p>\n    <a class=\"u-url\" href=\"http://www.raspberrypi.org/\">More info about the Raspberry Pi</a>\n    <p class=\"p-price\">£29.95</p>\n    <p class=\"p-review h-review\"><span class=\"p-rating\">4.5</span> out of 5</p>\n    <p>Categories: <span class=\"p-category\">Computer</span>, <span class=\"p-category\">Education</span></p>\n</div>";
-   var expected = {"items":[{"type":["h-product"],"properties":{"name":["Raspberry Pi"],"photo":["http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/RaspberryPi.jpg/320px-RaspberryPi.jpg"],"description":[{"value":"The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming.","html":"The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming."}],"url":["http://www.raspberrypi.org/"],"price":["£29.95"],"category":["Computer","Education"],"review":[{"value":"4.5 out of 5","type":["h-review"],"properties":{"rating":["4.5"],"name":["4.5 out of 5"]}}]}}],"rels":{},"rel-urls":{}};
-
-   it('simpleproperties', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-product/simpleproperties
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-product', function() {
+   var htmlFragment = "<meta charset=\"utf-8\">\n<div class=\"h-product\">\n    <h2 class=\"p-name\">Raspberry Pi</h2>\n    <img class=\"u-photo\" src=\"http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/RaspberryPi.jpg/320px-RaspberryPi.jpg\" />\n    <p class=\"e-description\">The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming.</p>\n    <a class=\"u-url\" href=\"http://www.raspberrypi.org/\">More info about the Raspberry Pi</a>\n    <p class=\"p-price\">£29.95</p>\n    <p class=\"p-review h-review\"><span class=\"p-rating\">4.5</span> out of 5</p>\n    <p>Categories: <span class=\"p-category\">Computer</span>, <span class=\"p-category\">Education</span></p>\n</div>";
+   var expected = {"items":[{"type":["h-product"],"properties":{"name":["Raspberry Pi"],"photo":["http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/RaspberryPi.jpg/320px-RaspberryPi.jpg"],"description":[{"value":"The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming.","html":"The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming."}],"url":["http://www.raspberrypi.org/"],"price":["£29.95"],"category":["Computer","Education"],"review":[{"value":"4.5 out of 5","type":["h-review"],"properties":{"rating":["4.5"],"name":["4.5 out of 5"]}}]}}],"rels":{},"rel-urls":{}};
+
+   it('simpleproperties', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-recipe-all.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-recipe-all.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-recipe/all
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-recipe', function() {
-   var htmlFragment = "<section class=\"h-recipe\">\n    <h1 class=\"p-name\">Yorkshire Puddings</h1>      \n    <p class=\"p-summary\">Makes <span class=\"p-yield\">6 good sized Yorkshire puddings</span>, the way my mum taught me</p>\n\n\n    <p><img class=\"u-photo\" src=\"http://codebits.glennjones.net/semantic/yorkshire-puddings.jpg\" /></p>\n\n    <span class=\"p-review h-review-aggregate\">\n        <span class=\"p-rating\">\n            <span class=\"p-average\">4.5</span> stars out 5 based on </span>\n            <span class=\"p-count\">35</span> reviews</span>\n         \n    \n\n    <div id=\"ingredients-container\">\n        <h3>Ingredients</h3>\n        <ul>\n            <li class=\"e-ingredient\">1 egg</li>\n            <li class=\"e-ingredient\">75g plain flour</li>\n            <li class=\"e-ingredient\">70ml milk</li>\n            <li class=\"e-ingredient\">60ml water</li>\n            <li class=\"e-ingredient\">Pinch of salt</li>\n        </ul>\n    </div>\n\n    <h3>Time</h3>\n    <ul>\n        <li class=\"prepTime\">Preparation <span class=\"value-title\" title=\"PT0H10M\">10 mins</span></li>\n        <li class=\"cookTime\">Cook <span class=\"value-title\" title=\"PT0H25M\">25 mins</span></li>\n    </ul> \n\n\n    <h3>Instructions</h3>\n    <div class=\"e-instructions\">\n        <ol>\n            <li>Pre-heat oven to 230C or gas mark 8. Pour the vegetable oil evenly into 2 x 4-hole \n            Yorkshire pudding tins and place in the oven to heat through.</li> \n            \n            <li>To make the batter, add all the flour into a bowl and beat in the eggs until smooth. \n            Gradually add the milk and water while beating the mixture. It should be smooth and \n            without lumps. Finally add a pinch of salt.</li>\n            \n            <li>Make sure the oil is piping hot before pouring the batter evenly into the tins. \n            Place in the oven for 20-25 minutes until pudding have risen and look golden brown</li>\n        </ol>\n    </div>\n\n    <h3>Nutrition</h3>\n    <ul id=\"nutrition-list\">\n        <li class=\"p-nutrition\">Calories: <span class=\"calories\">125</span></li>\n        <li class=\"p-nutrition\">Fat: <span class=\"fat\">3.2g</span></li>\n        <li class=\"p-nutrition\">Cholesterol: <span class=\"cholesterol\">77mg</span></li>\n    </ul>\n    <p>(Amount per pudding)</p>\n\n    <p>\n        Published on <time class=\"dt-published\" datetime=\"2011-10-27\">27 Oct 2011</time> by \n        <span class=\"p-author h-card\">\n            <a class=\"p-name u-url\" href=\"http://glennjones.net\">Glenn Jones</a>\n        </span>\n    </p>\n    <a href=\"http://www.flickr.com/photos/dithie/4106528495/\">Photo by dithie</a>\n    </section>";
-   var expected = {"items":[{"type":["h-recipe"],"properties":{"name":["Yorkshire Puddings"],"summary":["Makes 6 good sized Yorkshire puddings, the way my mum taught me"],"yield":["6 good sized Yorkshire puddings"],"photo":["http://codebits.glennjones.net/semantic/yorkshire-puddings.jpg"],"review":[{"value":"4.5 stars out 5 based on \n            35 reviews","type":["h-review-aggregate"],"properties":{"rating":["4.5 stars out 5 based on"],"average":["4.5"],"count":["35"],"name":["4.5 stars out 5 based on \n            35 reviews"]}}],"ingredient":[{"value":"1 egg","html":"1 egg"},{"value":"75g plain flour","html":"75g plain flour"},{"value":"70ml milk","html":"70ml milk"},{"value":"60ml water","html":"60ml water"},{"value":"Pinch of salt","html":"Pinch of salt"}],"instructions":[{"value":"Pre-heat oven to 230C or gas mark 8. Pour the vegetable oil evenly into 2 x 4-hole \n            Yorkshire pudding tins and place in the oven to heat through. \n            \n            To make the batter, add all the flour into a bowl and beat in the eggs until smooth. \n            Gradually add the milk and water while beating the mixture. It should be smooth and \n            without lumps. Finally add a pinch of salt.\n            \n            Make sure the oil is piping hot before pouring the batter evenly into the tins. \n            Place in the oven for 20-25 minutes until pudding have risen and look golden brown","html":"\n        <ol>\n            <li>Pre-heat oven to 230C or gas mark 8. Pour the vegetable oil evenly into 2 x 4-hole \n            Yorkshire pudding tins and place in the oven to heat through.</li> \n            \n            <li>To make the batter, add all the flour into a bowl and beat in the eggs until smooth. \n            Gradually add the milk and water while beating the mixture. It should be smooth and \n            without lumps. Finally add a pinch of salt.</li>\n            \n            <li>Make sure the oil is piping hot before pouring the batter evenly into the tins. \n            Place in the oven for 20-25 minutes until pudding have risen and look golden brown</li>\n        </ol>\n    "}],"nutrition":["Calories: 125","Fat: 3.2g","Cholesterol: 77mg"],"published":["2011-10-27"],"author":[{"value":"Glenn Jones","type":["h-card"],"properties":{"name":["Glenn Jones"],"url":["http://glennjones.net"]}}],"url":["http://www.flickr.com/photos/dithie/4106528495/"]}}],"rels":{},"rel-urls":{}};
-
-   it('all', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-recipe/all
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-recipe', function() {
+   var htmlFragment = "<section class=\"h-recipe\">\n    <h1 class=\"p-name\">Yorkshire Puddings</h1>      \n    <p class=\"p-summary\">Makes <span class=\"p-yield\">6 good sized Yorkshire puddings</span>, the way my mum taught me</p>\n\n\n    <p><img class=\"u-photo\" src=\"http://codebits.glennjones.net/semantic/yorkshire-puddings.jpg\" /></p>\n\n    <span class=\"p-review h-review-aggregate\">\n        <span class=\"p-rating\">\n            <span class=\"p-average\">4.5</span> stars out 5 based on </span>\n            <span class=\"p-count\">35</span> reviews</span>\n         \n    \n\n    <div id=\"ingredients-container\">\n        <h3>Ingredients</h3>\n        <ul>\n            <li class=\"e-ingredient\">1 egg</li>\n            <li class=\"e-ingredient\">75g plain flour</li>\n            <li class=\"e-ingredient\">70ml milk</li>\n            <li class=\"e-ingredient\">60ml water</li>\n            <li class=\"e-ingredient\">Pinch of salt</li>\n        </ul>\n    </div>\n\n    <h3>Time</h3>\n    <ul>\n        <li class=\"prepTime\">Preparation <span class=\"value-title\" title=\"PT0H10M\">10 mins</span></li>\n        <li class=\"cookTime\">Cook <span class=\"value-title\" title=\"PT0H25M\">25 mins</span></li>\n    </ul> \n\n\n    <h3>Instructions</h3>\n    <div class=\"e-instructions\">\n        <ol>\n            <li>Pre-heat oven to 230C or gas mark 8. Pour the vegetable oil evenly into 2 x 4-hole \n            Yorkshire pudding tins and place in the oven to heat through.</li> \n            \n            <li>To make the batter, add all the flour into a bowl and beat in the eggs until smooth. \n            Gradually add the milk and water while beating the mixture. It should be smooth and \n            without lumps. Finally add a pinch of salt.</li>\n            \n            <li>Make sure the oil is piping hot before pouring the batter evenly into the tins. \n            Place in the oven for 20-25 minutes until pudding have risen and look golden brown</li>\n        </ol>\n    </div>\n\n    <h3>Nutrition</h3>\n    <ul id=\"nutrition-list\">\n        <li class=\"p-nutrition\">Calories: <span class=\"calories\">125</span></li>\n        <li class=\"p-nutrition\">Fat: <span class=\"fat\">3.2g</span></li>\n        <li class=\"p-nutrition\">Cholesterol: <span class=\"cholesterol\">77mg</span></li>\n    </ul>\n    <p>(Amount per pudding)</p>\n\n    <p>\n        Published on <time class=\"dt-published\" datetime=\"2011-10-27\">27 Oct 2011</time> by \n        <span class=\"p-author h-card\">\n            <a class=\"p-name u-url\" href=\"http://glennjones.net\">Glenn Jones</a>\n        </span>\n    </p>\n    <a href=\"http://www.flickr.com/photos/dithie/4106528495/\">Photo by dithie</a>\n    </section>";
+   var expected = {"items":[{"type":["h-recipe"],"properties":{"name":["Yorkshire Puddings"],"summary":["Makes 6 good sized Yorkshire puddings, the way my mum taught me"],"yield":["6 good sized Yorkshire puddings"],"photo":["http://codebits.glennjones.net/semantic/yorkshire-puddings.jpg"],"review":[{"value":"4.5 stars out 5 based on \n            35 reviews","type":["h-review-aggregate"],"properties":{"rating":["4.5 stars out 5 based on"],"average":["4.5"],"count":["35"],"name":["4.5 stars out 5 based on \n            35 reviews"]}}],"ingredient":[{"value":"1 egg","html":"1 egg"},{"value":"75g plain flour","html":"75g plain flour"},{"value":"70ml milk","html":"70ml milk"},{"value":"60ml water","html":"60ml water"},{"value":"Pinch of salt","html":"Pinch of salt"}],"instructions":[{"value":"Pre-heat oven to 230C or gas mark 8. Pour the vegetable oil evenly into 2 x 4-hole \n            Yorkshire pudding tins and place in the oven to heat through. \n            \n            To make the batter, add all the flour into a bowl and beat in the eggs until smooth. \n            Gradually add the milk and water while beating the mixture. It should be smooth and \n            without lumps. Finally add a pinch of salt.\n            \n            Make sure the oil is piping hot before pouring the batter evenly into the tins. \n            Place in the oven for 20-25 minutes until pudding have risen and look golden brown","html":"\n        <ol>\n            <li>Pre-heat oven to 230C or gas mark 8. Pour the vegetable oil evenly into 2 x 4-hole \n            Yorkshire pudding tins and place in the oven to heat through.</li> \n            \n            <li>To make the batter, add all the flour into a bowl and beat in the eggs until smooth. \n            Gradually add the milk and water while beating the mixture. It should be smooth and \n            without lumps. Finally add a pinch of salt.</li>\n            \n            <li>Make sure the oil is piping hot before pouring the batter evenly into the tins. \n            Place in the oven for 20-25 minutes until pudding have risen and look golden brown</li>\n        </ol>\n    "}],"nutrition":["Calories: 125","Fat: 3.2g","Cholesterol: 77mg"],"published":["2011-10-27"],"author":[{"value":"Glenn Jones","type":["h-card"],"properties":{"name":["Glenn Jones"],"url":["http://glennjones.net"]}}],"url":["http://www.flickr.com/photos/dithie/4106528495/"]}}],"rels":{},"rel-urls":{}};
+
+   it('all', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-recipe-minimum.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-recipe-minimum.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-recipe/minimum
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-recipe', function() {
-   var htmlFragment = "<div class=\"h-recipe\">  \n    <p class=\"p-name\">Toast</p>\n    <ul>\n        <li class=\"e-ingredient\">Slice of bread</li>\n        <li class=\"e-ingredient\">Butter</li>\n    </ul>\n</div>";
-   var expected = {"items":[{"type":["h-recipe"],"properties":{"name":["Toast"],"ingredient":[{"value":"Slice of bread","html":"Slice of bread"},{"value":"Butter","html":"Butter"}]}}],"rels":{},"rel-urls":{}};
-
-   it('minimum', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-recipe/minimum
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-recipe', function() {
+   var htmlFragment = "<div class=\"h-recipe\">  \n    <p class=\"p-name\">Toast</p>\n    <ul>\n        <li class=\"e-ingredient\">Slice of bread</li>\n        <li class=\"e-ingredient\">Butter</li>\n    </ul>\n</div>";
+   var expected = {"items":[{"type":["h-recipe"],"properties":{"name":["Toast"],"ingredient":[{"value":"Slice of bread","html":"Slice of bread"},{"value":"Butter","html":"Butter"}]}}],"rels":{},"rel-urls":{}};
+
+   it('minimum', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-resume-affiliation.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-resume-affiliation.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-resume/affiliation
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-resume', function() {
-   var htmlFragment = "<div class=\"h-resume\">\n    <p>\n        <span class=\"p-name\">Tim Berners-Lee</span>, \n        <span class=\"p-summary\">invented the World Wide Web</span>. \n    </p> \n    Belongs to following groups:\n    <p>   \n        <a class=\"p-affiliation h-card\" href=\"http://www.w3.org/\">\n            <img class=\"p-name u-photo\" alt=\"W3C\" src=\"http://www.w3.org/Icons/WWW/w3c_home_nb.png\" />\n        </a>\n    </p>   \n</div>";
-   var expected = {"items":[{"type":["h-resume"],"properties":{"name":["Tim Berners-Lee"],"summary":["invented the World Wide Web"],"affiliation":[{"type":["h-card"],"properties":{"name":["W3C"],"photo":["http://www.w3.org/Icons/WWW/w3c_home_nb.png"],"url":["http://www.w3.org/"]}}]}}],"rels":{},"rel-urls":{}};
-
-   it('affiliation', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-resume/affiliation
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-resume', function() {
+   var htmlFragment = "<div class=\"h-resume\">\n    <p>\n        <span class=\"p-name\">Tim Berners-Lee</span>, \n        <span class=\"p-summary\">invented the World Wide Web</span>. \n    </p> \n    Belongs to following groups:\n    <p>   \n        <a class=\"p-affiliation h-card\" href=\"http://www.w3.org/\">\n            <img class=\"p-name u-photo\" alt=\"W3C\" src=\"http://www.w3.org/Icons/WWW/w3c_home_nb.png\" />\n        </a>\n    </p>   \n</div>";
+   var expected = {"items":[{"type":["h-resume"],"properties":{"name":["Tim Berners-Lee"],"summary":["invented the World Wide Web"],"affiliation":[{"type":["h-card"],"properties":{"name":["W3C"],"photo":["http://www.w3.org/Icons/WWW/w3c_home_nb.png"],"url":["http://www.w3.org/"]}}]}}],"rels":{},"rel-urls":{}};
+
+   it('affiliation', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-resume-contact.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-resume-contact.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-resume/contact
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-resume', function() {
-   var htmlFragment = "<div class=\"h-resume\">\n    <p class=\"p-name\">Tim Berners-Lee</p>\n    <p class=\"p-summary\">Invented the World Wide Web.</p><hr />\n    <div class=\"p-contact h-card\">\n        <p class=\"p-name\">MIT</p>\n        <p>\n            <span class=\"p-street-address\">32 Vassar Street</span>, \n            <span class=\"p-extended-address\">Room 32-G524</span>, \n            <span class=\"p-locality\">Cambridge</span>,  \n            <span class=\"p-region\">MA</span> \n            <span class=\"p-postal-code\">02139</span>, \n            <span class=\"p-country-name\">USA</span>.\n        </p>\n        <p>Tel:<span class=\"p-tel\">+1 (617) 253 5702</span></p>\n        <p>Email:<a class=\"u-email\" href=\"mailto:timbl@w3.org\">timbl@w3.org</a></p>\n    </div>\n</div>";
-   var expected = {"items":[{"type":["h-resume"],"properties":{"name":["Tim Berners-Lee"],"summary":["Invented the World Wide Web."],"contact":[{"value":"MIT","type":["h-card"],"properties":{"name":["MIT"],"street-address":["32 Vassar Street"],"extended-address":["Room 32-G524"],"locality":["Cambridge"],"region":["MA"],"postal-code":["02139"],"country-name":["USA"],"tel":["+1 (617) 253 5702"],"email":["mailto:timbl@w3.org"]}}]}}],"rels":{},"rel-urls":{}};
-
-   it('contact', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-resume/contact
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-resume', function() {
+   var htmlFragment = "<div class=\"h-resume\">\n    <p class=\"p-name\">Tim Berners-Lee</p>\n    <p class=\"p-summary\">Invented the World Wide Web.</p><hr />\n    <div class=\"p-contact h-card\">\n        <p class=\"p-name\">MIT</p>\n        <p>\n            <span class=\"p-street-address\">32 Vassar Street</span>, \n            <span class=\"p-extended-address\">Room 32-G524</span>, \n            <span class=\"p-locality\">Cambridge</span>,  \n            <span class=\"p-region\">MA</span> \n            <span class=\"p-postal-code\">02139</span>, \n            <span class=\"p-country-name\">USA</span>.\n        </p>\n        <p>Tel:<span class=\"p-tel\">+1 (617) 253 5702</span></p>\n        <p>Email:<a class=\"u-email\" href=\"mailto:timbl@w3.org\">timbl@w3.org</a></p>\n    </div>\n</div>";
+   var expected = {"items":[{"type":["h-resume"],"properties":{"name":["Tim Berners-Lee"],"summary":["Invented the World Wide Web."],"contact":[{"value":"MIT","type":["h-card"],"properties":{"name":["MIT"],"street-address":["32 Vassar Street"],"extended-address":["Room 32-G524"],"locality":["Cambridge"],"region":["MA"],"postal-code":["02139"],"country-name":["USA"],"tel":["+1 (617) 253 5702"],"email":["mailto:timbl@w3.org"]}}]}}],"rels":{},"rel-urls":{}};
+
+   it('contact', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-resume-education.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-resume-education.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-resume/education
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-resume', function() {
-   var htmlFragment = "<div class=\"h-resume\">\n    <p class=\"p-name\">Tim Berners-Lee</p>\n    <div class=\"p-contact h-card\">\n        <p class=\"p-title\">Director of the World Wide Web Foundation</p>\n    </div>\n    <p class=\"p-summary\">Invented the World Wide Web.</p><hr />\n    <p class=\"p-education h-event h-card\">\n        <span class=\"p-name p-org\">The Queen's College, Oxford University</span>, \n        <span class=\"p-description\">BA Hons (I) Physics</span> \n        <time class=\"dt-start\" datetime=\"1973-09\">1973</time> –\n        <time class=\"dt-end\" datetime=\"1976-06\">1976</time>\n    </p>\n</div>";
-   var expected = {"items":[{"type":["h-resume"],"properties":{"name":["Tim Berners-Lee"],"contact":[{"value":"Director of the World Wide Web Foundation","type":["h-card"],"properties":{"title":["Director of the World Wide Web Foundation"],"name":["Director of the World Wide Web Foundation"]}}],"summary":["Invented the World Wide Web."],"education":[{"value":"The Queen's College, Oxford University","type":["h-event","h-card"],"properties":{"name":["The Queen's College, Oxford University"],"org":["The Queen's College, Oxford University"],"description":["BA Hons (I) Physics"],"start":["1973-09"],"end":["1976-06"]}}]}}],"rels":{},"rel-urls":{}};
-
-   it('education', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-resume/education
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-resume', function() {
+   var htmlFragment = "<div class=\"h-resume\">\n    <p class=\"p-name\">Tim Berners-Lee</p>\n    <div class=\"p-contact h-card\">\n        <p class=\"p-title\">Director of the World Wide Web Foundation</p>\n    </div>\n    <p class=\"p-summary\">Invented the World Wide Web.</p><hr />\n    <p class=\"p-education h-event h-card\">\n        <span class=\"p-name p-org\">The Queen's College, Oxford University</span>, \n        <span class=\"p-description\">BA Hons (I) Physics</span> \n        <time class=\"dt-start\" datetime=\"1973-09\">1973</time> –\n        <time class=\"dt-end\" datetime=\"1976-06\">1976</time>\n    </p>\n</div>";
+   var expected = {"items":[{"type":["h-resume"],"properties":{"name":["Tim Berners-Lee"],"contact":[{"value":"Director of the World Wide Web Foundation","type":["h-card"],"properties":{"title":["Director of the World Wide Web Foundation"],"name":["Director of the World Wide Web Foundation"]}}],"summary":["Invented the World Wide Web."],"education":[{"value":"The Queen's College, Oxford University","type":["h-event","h-card"],"properties":{"name":["The Queen's College, Oxford University"],"org":["The Queen's College, Oxford University"],"description":["BA Hons (I) Physics"],"start":["1973-09"],"end":["1976-06"]}}]}}],"rels":{},"rel-urls":{}};
+
+   it('education', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-resume-justaname.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-resume-justaname.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-resume/justaname
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-resume', function() {
-   var htmlFragment = "<p class=\"h-resume\">Tim Berners-Lee, invented the World Wide Web.</p>";
-   var expected = {"items":[{"type":["h-resume"],"properties":{"name":["Tim Berners-Lee, invented the World Wide Web."]}}],"rels":{},"rel-urls":{}};
-
-   it('justaname', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-resume/justaname
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-resume', function() {
+   var htmlFragment = "<p class=\"h-resume\">Tim Berners-Lee, invented the World Wide Web.</p>";
+   var expected = {"items":[{"type":["h-resume"],"properties":{"name":["Tim Berners-Lee, invented the World Wide Web."]}}],"rels":{},"rel-urls":{}};
+
+   it('justaname', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-resume-skill.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-resume-skill.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-resume/skill
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-resume', function() {
-   var htmlFragment = "<div class=\"h-resume\">\n    <p>\n        <span class=\"p-name\">Tim Berners-Lee</span>, \n        <span class=\"p-summary\">invented the World Wide Web</span>.\n    </p>\n    Skills:     \n    <ul>\n        <li class=\"p-skill\">information systems</li>\n        <li class=\"p-skill\">advocacy</li>\n        <li class=\"p-skill\">leadership</li>\n    <ul>   \n</ul></ul></div>";
-   var expected = {"items":[{"type":["h-resume"],"properties":{"name":["Tim Berners-Lee"],"summary":["invented the World Wide Web"],"skill":["information systems","advocacy","leadership"]}}],"rels":{},"rel-urls":{}};
-
-   it('skill', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-resume/skill
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-resume', function() {
+   var htmlFragment = "<div class=\"h-resume\">\n    <p>\n        <span class=\"p-name\">Tim Berners-Lee</span>, \n        <span class=\"p-summary\">invented the World Wide Web</span>.\n    </p>\n    Skills:     \n    <ul>\n        <li class=\"p-skill\">information systems</li>\n        <li class=\"p-skill\">advocacy</li>\n        <li class=\"p-skill\">leadership</li>\n    <ul>   \n</ul></ul></div>";
+   var expected = {"items":[{"type":["h-resume"],"properties":{"name":["Tim Berners-Lee"],"summary":["invented the World Wide Web"],"skill":["information systems","advocacy","leadership"]}}],"rels":{},"rel-urls":{}};
+
+   it('skill', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-resume-work.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-resume-work.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-resume/work
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-resume', function() {
-   var htmlFragment = "<meta charset=\"utf-8\">\n<div class=\"h-resume\">\n    <p class=\"p-name\">Tim Berners-Lee</p>\n    <div class=\"p-contact h-card\">\n        <p class=\"p-title\">Director of the World Wide Web Foundation</p>\n    </div>\n    <p class=\"p-summary\">Invented the World Wide Web.</p><hr />\n    <div class=\"p-experience h-event h-card\">\n        <p class=\"p-title\">Director</p>\n        <p><a class=\"p-name p-org u-url\" href=\"http://www.webfoundation.org/\">World Wide Web Foundation</a></p>\n        <p>\n            <time class=\"dt-start\" datetime=\"2009-01-18\">Jan 2009</time> – Present\n            <time class=\"dt-duration\" datetime=\"P2Y11M\">(2 years 11 month)</time>\n        </p>\n    </div>\n</div>";
-   var expected = {"items":[{"type":["h-resume"],"properties":{"name":["Tim Berners-Lee"],"contact":[{"value":"Director of the World Wide Web Foundation","type":["h-card"],"properties":{"title":["Director of the World Wide Web Foundation"],"name":["Director of the World Wide Web Foundation"]}}],"summary":["Invented the World Wide Web."],"experience":[{"value":"World Wide Web Foundation","type":["h-event","h-card"],"properties":{"title":["Director"],"name":["World Wide Web Foundation"],"org":["World Wide Web Foundation"],"url":["http://www.webfoundation.org/"],"start":["2009-01-18"],"duration":["P2Y11M"]}}]}}],"rels":{},"rel-urls":{}};
-
-   it('work', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-resume/work
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-resume', function() {
+   var htmlFragment = "<meta charset=\"utf-8\">\n<div class=\"h-resume\">\n    <p class=\"p-name\">Tim Berners-Lee</p>\n    <div class=\"p-contact h-card\">\n        <p class=\"p-title\">Director of the World Wide Web Foundation</p>\n    </div>\n    <p class=\"p-summary\">Invented the World Wide Web.</p><hr />\n    <div class=\"p-experience h-event h-card\">\n        <p class=\"p-title\">Director</p>\n        <p><a class=\"p-name p-org u-url\" href=\"http://www.webfoundation.org/\">World Wide Web Foundation</a></p>\n        <p>\n            <time class=\"dt-start\" datetime=\"2009-01-18\">Jan 2009</time> – Present\n            <time class=\"dt-duration\" datetime=\"P2Y11M\">(2 years 11 month)</time>\n        </p>\n    </div>\n</div>";
+   var expected = {"items":[{"type":["h-resume"],"properties":{"name":["Tim Berners-Lee"],"contact":[{"value":"Director of the World Wide Web Foundation","type":["h-card"],"properties":{"title":["Director of the World Wide Web Foundation"],"name":["Director of the World Wide Web Foundation"]}}],"summary":["Invented the World Wide Web."],"experience":[{"value":"World Wide Web Foundation","type":["h-event","h-card"],"properties":{"title":["Director"],"name":["World Wide Web Foundation"],"org":["World Wide Web Foundation"],"url":["http://www.webfoundation.org/"],"start":["2009-01-18"],"duration":["P2Y11M"]}}]}}],"rels":{},"rel-urls":{}};
+
+   it('work', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-review-aggregate-hevent.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-review-aggregate-hevent.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-review-aggregate/hevent
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-review-aggregate', function() {
-   var htmlFragment = "<div class=\"h-review-aggregate\">\n    <div class=\"p-item h-event\">\n        <h3 class=\"p-name\">Fullfrontal</h3>\n        <p class=\"p-description\">A one day JavaScript Conference held in Brighton</p>\n        <p><time class=\"dt-start\" datetime=\"2012-11-09\">9th November 2012</time></p>    \n    </div> \n    \n    <p class=\"p-rating\">\n        <span class=\"p-average value\">9.9</span> out of \n        <span class=\"p-best\">10</span> \n        based on <span class=\"p-count\">62</span> reviews\n    </p>\n</div>";
-   var expected = {"items":[{"type":["h-review-aggregate"],"properties":{"item":[{"value":"Fullfrontal","type":["h-event"],"properties":{"name":["Fullfrontal"],"description":["A one day JavaScript Conference held in Brighton"],"start":["2012-11-09"]}}],"rating":["9.9"],"average":["9.9"],"best":["10"],"count":["62"],"name":["Fullfrontal\n        A one day JavaScript Conference held in Brighton\n        9th November 2012    \n     \n    \n    \n        9.9 out of \n        10 \n        based on 62 reviews"]}}],"rels":{},"rel-urls":{}};
-
-   it('hevent', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-review-aggregate/hevent
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-review-aggregate', function() {
+   var htmlFragment = "<div class=\"h-review-aggregate\">\n    <div class=\"p-item h-event\">\n        <h3 class=\"p-name\">Fullfrontal</h3>\n        <p class=\"p-description\">A one day JavaScript Conference held in Brighton</p>\n        <p><time class=\"dt-start\" datetime=\"2012-11-09\">9th November 2012</time></p>    \n    </div> \n    \n    <p class=\"p-rating\">\n        <span class=\"p-average value\">9.9</span> out of \n        <span class=\"p-best\">10</span> \n        based on <span class=\"p-count\">62</span> reviews\n    </p>\n</div>";
+   var expected = {"items":[{"type":["h-review-aggregate"],"properties":{"item":[{"value":"Fullfrontal","type":["h-event"],"properties":{"name":["Fullfrontal"],"description":["A one day JavaScript Conference held in Brighton"],"start":["2012-11-09"]}}],"rating":["9.9"],"average":["9.9"],"best":["10"],"count":["62"],"name":["Fullfrontal\n        A one day JavaScript Conference held in Brighton\n        9th November 2012    \n     \n    \n    \n        9.9 out of \n        10 \n        based on 62 reviews"]}}],"rels":{},"rel-urls":{}};
+
+   it('hevent', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-review-aggregate-justahyperlink.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-review-aggregate-justahyperlink.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-review-aggregate/justahyperlink
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-review-aggregate', function() {
-   var htmlFragment = "<div class=\"h-review-aggregate\">\n    <h3 class=\"p-item h-item\">Mediterranean Wraps</h3>\n     <span class=\"p-summary\">\n        Customers flock to this small restaurant for their \n        tasty falafel and shawerma wraps and welcoming staff.\n    </span>\n    <span class=\"p-rating\">4.5</span> out of 5 \n</div>";
-   var expected = {"items":[{"type":["h-review-aggregate"],"properties":{"item":[{"value":"Mediterranean Wraps","type":["h-item"],"properties":{"name":["Mediterranean Wraps"]}}],"summary":["Customers flock to this small restaurant for their \n        tasty falafel and shawerma wraps and welcoming staff."],"rating":["4.5"],"name":["Mediterranean Wraps\n     \n        Customers flock to this small restaurant for their \n        tasty falafel and shawerma wraps and welcoming staff.\n    \n    4.5 out of 5"]}}],"rels":{},"rel-urls":{}};
-
-   it('justahyperlink', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-review-aggregate/justahyperlink
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-review-aggregate', function() {
+   var htmlFragment = "<div class=\"h-review-aggregate\">\n    <h3 class=\"p-item h-item\">Mediterranean Wraps</h3>\n     <span class=\"p-summary\">\n        Customers flock to this small restaurant for their \n        tasty falafel and shawerma wraps and welcoming staff.\n    </span>\n    <span class=\"p-rating\">4.5</span> out of 5 \n</div>";
+   var expected = {"items":[{"type":["h-review-aggregate"],"properties":{"item":[{"value":"Mediterranean Wraps","type":["h-item"],"properties":{"name":["Mediterranean Wraps"]}}],"summary":["Customers flock to this small restaurant for their \n        tasty falafel and shawerma wraps and welcoming staff."],"rating":["4.5"],"name":["Mediterranean Wraps\n     \n        Customers flock to this small restaurant for their \n        tasty falafel and shawerma wraps and welcoming staff.\n    \n    4.5 out of 5"]}}],"rels":{},"rel-urls":{}};
+
+   it('justahyperlink', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-review-aggregate-simpleproperties.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-review-aggregate-simpleproperties.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-review-aggregate/simpleproperties
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-review-aggregate', function() {
-   var htmlFragment = "<div class=\"h-review-aggregate\">\n    <div class=\"p-item h-card\">\n        <h3 class=\"p-name\">Mediterranean Wraps</h3>\n        <p>\n            <span class=\"p-street-address\">433 S California Ave</span>, \n            <span class=\"p-locality\">Palo Alto</span>, \n            <span class=\"p-region\">CA</span> - \n            <span class=\"p-tel\">(650) 321-8189</span>\n        </p>\n    </div> \n    <span class=\"p-summary\">Customers flock to this small restaurant for their \n    tasty falafel and shawerma wraps and welcoming staff.</span>\n    <span class=\"p-rating\">\n        <span class=\"p-average value\">9.2</span> out of \n        <span class=\"p-best\">10</span> \n        based on <span class=\"p-count\">17</span> reviews\n    </span>\n</div>";
-   var expected = {"items":[{"type":["h-review-aggregate"],"properties":{"item":[{"value":"Mediterranean Wraps","type":["h-card"],"properties":{"name":["Mediterranean Wraps"],"street-address":["433 S California Ave"],"locality":["Palo Alto"],"region":["CA"],"tel":["(650) 321-8189"]}}],"summary":["Customers flock to this small restaurant for their \n    tasty falafel and shawerma wraps and welcoming staff."],"rating":["9.2"],"average":["9.2"],"best":["10"],"count":["17"],"name":["Mediterranean Wraps\n        \n            433 S California Ave, \n            Palo Alto, \n            CA - \n            (650) 321-8189\n        \n     \n    Customers flock to this small restaurant for their \n    tasty falafel and shawerma wraps and welcoming staff.\n    \n        9.2 out of \n        10 \n        based on 17 reviews"]}}],"rels":{},"rel-urls":{}};
-
-   it('simpleproperties', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-review-aggregate/simpleproperties
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-review-aggregate', function() {
+   var htmlFragment = "<div class=\"h-review-aggregate\">\n    <div class=\"p-item h-card\">\n        <h3 class=\"p-name\">Mediterranean Wraps</h3>\n        <p>\n            <span class=\"p-street-address\">433 S California Ave</span>, \n            <span class=\"p-locality\">Palo Alto</span>, \n            <span class=\"p-region\">CA</span> - \n            <span class=\"p-tel\">(650) 321-8189</span>\n        </p>\n    </div> \n    <span class=\"p-summary\">Customers flock to this small restaurant for their \n    tasty falafel and shawerma wraps and welcoming staff.</span>\n    <span class=\"p-rating\">\n        <span class=\"p-average value\">9.2</span> out of \n        <span class=\"p-best\">10</span> \n        based on <span class=\"p-count\">17</span> reviews\n    </span>\n</div>";
+   var expected = {"items":[{"type":["h-review-aggregate"],"properties":{"item":[{"value":"Mediterranean Wraps","type":["h-card"],"properties":{"name":["Mediterranean Wraps"],"street-address":["433 S California Ave"],"locality":["Palo Alto"],"region":["CA"],"tel":["(650) 321-8189"]}}],"summary":["Customers flock to this small restaurant for their \n    tasty falafel and shawerma wraps and welcoming staff."],"rating":["9.2"],"average":["9.2"],"best":["10"],"count":["17"],"name":["Mediterranean Wraps\n        \n            433 S California Ave, \n            Palo Alto, \n            CA - \n            (650) 321-8189\n        \n     \n    Customers flock to this small restaurant for their \n    tasty falafel and shawerma wraps and welcoming staff.\n    \n        9.2 out of \n        10 \n        based on 17 reviews"]}}],"rels":{},"rel-urls":{}};
+
+   it('simpleproperties', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-review-hyperlink.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-review-hyperlink.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-review/hyperlink
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-review', function() {
-   var htmlFragment = "<a class=\"h-review\" href=\"https://plus.google.com/116941523817079328322/about\">Crepes on Cole</a>";
-   var expected = {"items":[{"type":["h-review"],"properties":{"name":["Crepes on Cole"],"url":["https://plus.google.com/116941523817079328322/about"]}}],"rels":{},"rel-urls":{}};
-
-   it('hyperlink', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-review/hyperlink
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-review', function() {
+   var htmlFragment = "<a class=\"h-review\" href=\"https://plus.google.com/116941523817079328322/about\">Crepes on Cole</a>";
+   var expected = {"items":[{"type":["h-review"],"properties":{"name":["Crepes on Cole"],"url":["https://plus.google.com/116941523817079328322/about"]}}],"rels":{},"rel-urls":{}};
+
+   it('hyperlink', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-review-implieditem.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-review-implieditem.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-review/implieditem
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-review', function() {
-   var htmlFragment = "<div class=\"h-review\">\n    <a class=\"p-item h-item\" href=\"http://example.com/crepeoncole\">Crepes on Cole</a>\n    <p><span class=\"p-rating\">4.7</span> out of 5 stars</p>\n</div>";
-   var expected = {"items":[{"type":["h-review"],"properties":{"item":[{"value":"Crepes on Cole","type":["h-item"],"properties":{"name":["Crepes on Cole"],"url":["http://example.com/crepeoncole"]}}],"rating":["4.7"],"name":["Crepes on Cole\n    4.7 out of 5 stars"]}}],"rels":{},"rel-urls":{}};
-
-   it('implieditem', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-review/implieditem
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-review', function() {
+   var htmlFragment = "<div class=\"h-review\">\n    <a class=\"p-item h-item\" href=\"http://example.com/crepeoncole\">Crepes on Cole</a>\n    <p><span class=\"p-rating\">4.7</span> out of 5 stars</p>\n</div>";
+   var expected = {"items":[{"type":["h-review"],"properties":{"item":[{"value":"Crepes on Cole","type":["h-item"],"properties":{"name":["Crepes on Cole"],"url":["http://example.com/crepeoncole"]}}],"rating":["4.7"],"name":["Crepes on Cole\n    4.7 out of 5 stars"]}}],"rels":{},"rel-urls":{}};
+
+   it('implieditem', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-review-item.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-review-item.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-review/item
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-review', function() {
-   var htmlFragment = "<base href=\"http://example.com\" >\n<div class=\"h-review\">\n    <p class=\"p-item h-item\">\n        <img class=\"u-photo\" src=\"images/photo.gif\" />\n        <a class=\"p-name u-url\" href=\"http://example.com/crepeoncole\">Crepes on Cole</a>\n    </p>\n    <p><span class=\"p-rating\">5</span> out of 5 stars</p>\n</div>";
-   var expected = {"items":[{"type":["h-review"],"properties":{"item":[{"value":"Crepes on Cole","type":["h-item"],"properties":{"photo":["http://example.com/images/photo.gif"],"name":["Crepes on Cole"],"url":["http://example.com/crepeoncole"]}}],"rating":["5"],"name":["Crepes on Cole\n    \n    5 out of 5 stars"]}}],"rels":{},"rel-urls":{}};
-
-   it('item', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-review/item
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-review', function() {
+   var htmlFragment = "<base href=\"http://example.com\" >\n<div class=\"h-review\">\n    <p class=\"p-item h-item\">\n        <img class=\"u-photo\" src=\"images/photo.gif\" />\n        <a class=\"p-name u-url\" href=\"http://example.com/crepeoncole\">Crepes on Cole</a>\n    </p>\n    <p><span class=\"p-rating\">5</span> out of 5 stars</p>\n</div>";
+   var expected = {"items":[{"type":["h-review"],"properties":{"item":[{"value":"Crepes on Cole","type":["h-item"],"properties":{"photo":["http://example.com/images/photo.gif"],"name":["Crepes on Cole"],"url":["http://example.com/crepeoncole"]}}],"rating":["5"],"name":["Crepes on Cole\n    \n    5 out of 5 stars"]}}],"rels":{},"rel-urls":{}};
+
+   it('item', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-review-justaname.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-review-justaname.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-review/justaname
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-review', function() {
-   var htmlFragment = "<p class=\"h-review\">Crepes on Cole</p>";
-   var expected = {"items":[{"type":["h-review"],"properties":{"name":["Crepes on Cole"]}}],"rels":{},"rel-urls":{}};
-
-   it('justaname', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-review/justaname
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-review', function() {
+   var htmlFragment = "<p class=\"h-review\">Crepes on Cole</p>";
+   var expected = {"items":[{"type":["h-review"],"properties":{"name":["Crepes on Cole"]}}],"rels":{},"rel-urls":{}};
+
+   it('justaname', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-review-photo.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-review-photo.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-review/photo
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-review', function() {
-   var htmlFragment = "<base href=\"http://example.com\" ><img class=\"h-review\" src=\"images/photo.gif\" alt=\"Crepes on Cole\" />";
-   var expected = {"items":[{"type":["h-review"],"properties":{"name":["Crepes on Cole"],"photo":["http://example.com/images/photo.gif"]}}],"rels":{},"rel-urls":{}};
-
-   it('photo', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-review/photo
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-review', function() {
+   var htmlFragment = "<base href=\"http://example.com\" ><img class=\"h-review\" src=\"images/photo.gif\" alt=\"Crepes on Cole\" />";
+   var expected = {"items":[{"type":["h-review"],"properties":{"name":["Crepes on Cole"],"photo":["http://example.com/images/photo.gif"]}}],"rels":{},"rel-urls":{}};
+
+   it('photo', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-h-review-vcard.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-h-review-vcard.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/h-review/vcard
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('h-review', function() {
-   var htmlFragment = "<div class=\"h-review\">\n    <span><span class=\"p-rating\">5</span> out of 5 stars</span>\n    <h4 class=\"p-name\">Crepes on Cole is awesome</h4>\n    <span class=\"p-reviewer h-card\">\n        Reviewer: <span class=\"p-name\">Tantek</span> - \n    </span>\n    <time class=\"dt-reviewed\" datetime=\"2005-04-18\">April 18, 2005</time>\n    <div class=\"e-description\">\n        <p class=\"p-item h-card\">\n        <span class=\"p-name p-org\">Crepes on Cole</span> is one of the best little \n        creperies in <span class=\"p-adr h-adr\"><span class=\"p-locality\">San Francisco</span></span>.\n        Excellent food and service. Plenty of tables in a variety of sizes \n        for parties large and small.  Window seating makes for excellent \n        people watching to/from the N-Judah which stops right outside.  \n        I've had many fun social gatherings here, as well as gotten \n        plenty of work done thanks to neighborhood WiFi.\n        </p>\n    </div>\n    <p>Visit date: <span>April 2005</span></p>\n    <p>Food eaten: <a class=\"p-category\" href=\"http://en.wikipedia.org/wiki/crepe\">crepe</a></p>\n    <p>Permanent link for review: <a class=\"u-url\" href=\"http://example.com/crepe\">http://example.com/crepe</a></p>\n    <p><a rel=\"license\" href=\"http://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License\">Creative Commons Attribution-ShareAlike License</a></p>\n</div>";
-   var expected = {"items":[{"type":["h-review"],"properties":{"rating":["5"],"name":["Crepes on Cole is awesome"],"reviewer":[{"value":"Tantek","type":["h-card"],"properties":{"name":["Tantek"]}}],"reviewed":["2005-04-18"],"description":[{"value":"Crepes on Cole is one of the best little \n        creperies in San Francisco.\n        Excellent food and service. Plenty of tables in a variety of sizes \n        for parties large and small.  Window seating makes for excellent \n        people watching to/from the N-Judah which stops right outside.  \n        I've had many fun social gatherings here, as well as gotten \n        plenty of work done thanks to neighborhood WiFi.","html":"\n        <p class=\"p-item h-card\">\n        <span class=\"p-name p-org\">Crepes on Cole</span> is one of the best little \n        creperies in <span class=\"p-adr h-adr\"><span class=\"p-locality\">San Francisco</span></span>.\n        Excellent food and service. Plenty of tables in a variety of sizes \n        for parties large and small.  Window seating makes for excellent \n        people watching to/from the N-Judah which stops right outside.  \n        I've had many fun social gatherings here, as well as gotten \n        plenty of work done thanks to neighborhood WiFi.\n        </p>\n    "}],"item":[{"value":"Crepes on Cole","type":["h-card"],"properties":{"name":["Crepes on Cole"],"org":["Crepes on Cole"],"adr":[{"value":"San Francisco","type":["h-adr"],"properties":{"locality":["San Francisco"],"name":["San Francisco"]}}]}}],"category":["crepe"],"url":["http://example.com/crepe"]}}],"rels":{"license":["http://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License"]},"rel-urls":{"http://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License":{"text":"Creative Commons Attribution-ShareAlike License","rels":["license"]}}};
-
-   it('vcard', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/h-review/vcard
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('h-review', function() {
+   var htmlFragment = "<div class=\"h-review\">\n    <span><span class=\"p-rating\">5</span> out of 5 stars</span>\n    <h4 class=\"p-name\">Crepes on Cole is awesome</h4>\n    <span class=\"p-reviewer h-card\">\n        Reviewer: <span class=\"p-name\">Tantek</span> - \n    </span>\n    <time class=\"dt-reviewed\" datetime=\"2005-04-18\">April 18, 2005</time>\n    <div class=\"e-description\">\n        <p class=\"p-item h-card\">\n        <span class=\"p-name p-org\">Crepes on Cole</span> is one of the best little \n        creperies in <span class=\"p-adr h-adr\"><span class=\"p-locality\">San Francisco</span></span>.\n        Excellent food and service. Plenty of tables in a variety of sizes \n        for parties large and small.  Window seating makes for excellent \n        people watching to/from the N-Judah which stops right outside.  \n        I've had many fun social gatherings here, as well as gotten \n        plenty of work done thanks to neighborhood WiFi.\n        </p>\n    </div>\n    <p>Visit date: <span>April 2005</span></p>\n    <p>Food eaten: <a class=\"p-category\" href=\"http://en.wikipedia.org/wiki/crepe\">crepe</a></p>\n    <p>Permanent link for review: <a class=\"u-url\" href=\"http://example.com/crepe\">http://example.com/crepe</a></p>\n    <p><a rel=\"license\" href=\"http://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License\">Creative Commons Attribution-ShareAlike License</a></p>\n</div>";
+   var expected = {"items":[{"type":["h-review"],"properties":{"rating":["5"],"name":["Crepes on Cole is awesome"],"reviewer":[{"value":"Tantek","type":["h-card"],"properties":{"name":["Tantek"]}}],"reviewed":["2005-04-18"],"description":[{"value":"Crepes on Cole is one of the best little \n        creperies in San Francisco.\n        Excellent food and service. Plenty of tables in a variety of sizes \n        for parties large and small.  Window seating makes for excellent \n        people watching to/from the N-Judah which stops right outside.  \n        I've had many fun social gatherings here, as well as gotten \n        plenty of work done thanks to neighborhood WiFi.","html":"\n        <p class=\"p-item h-card\">\n        <span class=\"p-name p-org\">Crepes on Cole</span> is one of the best little \n        creperies in <span class=\"p-adr h-adr\"><span class=\"p-locality\">San Francisco</span></span>.\n        Excellent food and service. Plenty of tables in a variety of sizes \n        for parties large and small.  Window seating makes for excellent \n        people watching to/from the N-Judah which stops right outside.  \n        I've had many fun social gatherings here, as well as gotten \n        plenty of work done thanks to neighborhood WiFi.\n        </p>\n    "}],"item":[{"value":"Crepes on Cole","type":["h-card"],"properties":{"name":["Crepes on Cole"],"org":["Crepes on Cole"],"adr":[{"value":"San Francisco","type":["h-adr"],"properties":{"locality":["San Francisco"],"name":["San Francisco"]}}]}}],"category":["crepe"],"url":["http://example.com/crepe"]}}],"rels":{"license":["http://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License"]},"rel-urls":{"http://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License":{"text":"Creative Commons Attribution-ShareAlike License","rels":["license"]}}};
+
+   it('vcard', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-rel-duplicate-rels.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-rel-duplicate-rels.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/rel/duplicate-rels
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('rel', function() {
-   var htmlFragment = "<a href=\"http://ma.tt/2015/05/beethoven-mozart-bach/\" \n    title=\"Permalink to Beethoven, Mozart, Bach\" rel=\"bookmark\">\n<time class=\"entry-date\" datetime=\"2015-05-31T22:42:00+00:00\">May 31, 2015</time></a></span>\n<a href=\"http://ma.tt/category/asides/\" rel=\"category tag\">Asides</a>\n<span class=\"author vcard\">\n<a class=\"url fn n\" href=\"http://ma.tt/author/saxmatt/\" \n    title=\"View all posts by Matt\" rel=\"author\">Matt</a></span>\n<span class=\"date\"><a href=\"http://ma.tt/2015/06/jefferson-on-idleness/\" title=\"Permalink to Jefferson on Idleness\" rel=\"bookmark\"><time class=\"entry-date\" datetime=\"2015-06-02T21:26:00+00:00\">June 2, 2015</time></a></span>\n<span class=\"categories-links\"><a href=\"http://ma.tt/category/asides/\" rel=\"category tag\">Asides</a></span>\n<span class=\"author vcard\"><a class=\"url fn n\" href=\"http://ma.tt/author/saxmatt/\" title=\"View all posts by Matt\" rel=\"author\">Matt</a></span>\n";
-   var expected = {"rels":{"bookmark":["http://ma.tt/2015/05/beethoven-mozart-bach/","http://ma.tt/2015/06/jefferson-on-idleness/"],"category":["http://ma.tt/category/asides/"],"tag":["http://ma.tt/category/asides/"],"author":["http://ma.tt/author/saxmatt/"]},"items":[{"type":["h-card"],"properties":{"url":["http://ma.tt/author/saxmatt/"],"name":["Matt"]}},{"type":["h-card"],"properties":{"url":["http://ma.tt/author/saxmatt/"],"name":["Matt"]}}],"rel-urls":{"http://ma.tt/category/asides/":{"rels":["category","tag"],"text":"Asides"},"http://ma.tt/author/saxmatt/":{"rels":["author"],"text":"Matt","title":"View all posts by Matt"},"http://ma.tt/2015/05/beethoven-mozart-bach/":{"rels":["bookmark"],"text":"May 31, 2015","title":"Permalink to Beethoven, Mozart, Bach"},"http://ma.tt/2015/06/jefferson-on-idleness/":{"rels":["bookmark"],"text":"June 2, 2015","title":"Permalink to Jefferson on Idleness"}}};
-
-   it('duplicate-rels', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/rel/duplicate-rels
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('rel', function() {
+   var htmlFragment = "<a href=\"http://ma.tt/2015/05/beethoven-mozart-bach/\" \n    title=\"Permalink to Beethoven, Mozart, Bach\" rel=\"bookmark\">\n<time class=\"entry-date\" datetime=\"2015-05-31T22:42:00+00:00\">May 31, 2015</time></a></span>\n<a href=\"http://ma.tt/category/asides/\" rel=\"category tag\">Asides</a>\n<span class=\"author vcard\">\n<a class=\"url fn n\" href=\"http://ma.tt/author/saxmatt/\" \n    title=\"View all posts by Matt\" rel=\"author\">Matt</a></span>\n<span class=\"date\"><a href=\"http://ma.tt/2015/06/jefferson-on-idleness/\" title=\"Permalink to Jefferson on Idleness\" rel=\"bookmark\"><time class=\"entry-date\" datetime=\"2015-06-02T21:26:00+00:00\">June 2, 2015</time></a></span>\n<span class=\"categories-links\"><a href=\"http://ma.tt/category/asides/\" rel=\"category tag\">Asides</a></span>\n<span class=\"author vcard\"><a class=\"url fn n\" href=\"http://ma.tt/author/saxmatt/\" title=\"View all posts by Matt\" rel=\"author\">Matt</a></span>\n";
+   var expected = {"rels":{"bookmark":["http://ma.tt/2015/05/beethoven-mozart-bach/","http://ma.tt/2015/06/jefferson-on-idleness/"],"category":["http://ma.tt/category/asides/"],"tag":["http://ma.tt/category/asides/"],"author":["http://ma.tt/author/saxmatt/"]},"items":[{"type":["h-card"],"properties":{"url":["http://ma.tt/author/saxmatt/"],"name":["Matt"]}},{"type":["h-card"],"properties":{"url":["http://ma.tt/author/saxmatt/"],"name":["Matt"]}}],"rel-urls":{"http://ma.tt/category/asides/":{"rels":["category","tag"],"text":"Asides"},"http://ma.tt/author/saxmatt/":{"rels":["author"],"text":"Matt","title":"View all posts by Matt"},"http://ma.tt/2015/05/beethoven-mozart-bach/":{"rels":["bookmark"],"text":"May 31, 2015","title":"Permalink to Beethoven, Mozart, Bach"},"http://ma.tt/2015/06/jefferson-on-idleness/":{"rels":["bookmark"],"text":"June 2, 2015","title":"Permalink to Jefferson on Idleness"}}};
+
+   it('duplicate-rels', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-rel-license.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-rel-license.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/rel/license
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('rel', function() {
-   var htmlFragment = "<a rel=\"license\" href=\"http://creativecommons.org/licenses/by/2.5/\">cc by 2.5</a>";
-   var expected = {"items":[],"rels":{"license":["http://creativecommons.org/licenses/by/2.5/"]},"rel-urls":{"http://creativecommons.org/licenses/by/2.5/":{"text":"cc by 2.5","rels":["license"]}}};
-
-   it('license', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/rel/license
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('rel', function() {
+   var htmlFragment = "<a rel=\"license\" href=\"http://creativecommons.org/licenses/by/2.5/\">cc by 2.5</a>";
+   var expected = {"items":[],"rels":{"license":["http://creativecommons.org/licenses/by/2.5/"]},"rel-urls":{"http://creativecommons.org/licenses/by/2.5/":{"text":"cc by 2.5","rels":["license"]}}};
+
+   it('license', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-rel-nofollow.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-rel-nofollow.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/rel/nofollow
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('rel', function() {
-   var htmlFragment = "<a rel=\"nofollow\" href=\"http://microformats.org/wiki/microformats:copyrights\">Copyrights</a>";
-   var expected = {"items":[],"rels":{"nofollow":["http://microformats.org/wiki/microformats:copyrights"]},"rel-urls":{"http://microformats.org/wiki/microformats:copyrights":{"text":"Copyrights","rels":["nofollow"]}}};
-
-   it('nofollow', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/rel/nofollow
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('rel', function() {
+   var htmlFragment = "<a rel=\"nofollow\" href=\"http://microformats.org/wiki/microformats:copyrights\">Copyrights</a>";
+   var expected = {"items":[],"rels":{"nofollow":["http://microformats.org/wiki/microformats:copyrights"]},"rel-urls":{"http://microformats.org/wiki/microformats:copyrights":{"text":"Copyrights","rels":["nofollow"]}}};
+
+   it('nofollow', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-rel-rel-urls.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-rel-rel-urls.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/rel/rel-urls
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('rel', function() {
-   var htmlFragment = "<a rel=\"author\" href=\"http://example.com/a\">author a</a>\n<a rel=\"author\" href=\"http://example.com/b\">author b</a>\n<a rel=\"in-reply-to\" href=\"http://example.com/1\">post 1</a>\n<a rel=\"in-reply-to\" href=\"http://example.com/2\">post 2</a>\n<a rel=\"alternate home\"\n   href=\"http://example.com/fr\"\n   media=\"handheld\"\n   hreflang=\"fr\">French mobile homepage</a>";
-   var expected = {"items":[],"rels":{"author":["http://example.com/a","http://example.com/b"],"in-reply-to":["http://example.com/1","http://example.com/2"],"home":["http://example.com/fr"],"alternate":["http://example.com/fr"]},"rel-urls":{"http://example.com/a":{"rels":["author"],"text":"author a"},"http://example.com/b":{"rels":["author"],"text":"author b"},"http://example.com/1":{"rels":["in-reply-to"],"text":"post 1"},"http://example.com/2":{"rels":["in-reply-to"],"text":"post 2"},"http://example.com/fr":{"rels":["alternate","home"],"media":"handheld","hreflang":"fr","text":"French mobile homepage"}}};
-
-   it('rel-urls', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/rel/rel-urls
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('rel', function() {
+   var htmlFragment = "<a rel=\"author\" href=\"http://example.com/a\">author a</a>\n<a rel=\"author\" href=\"http://example.com/b\">author b</a>\n<a rel=\"in-reply-to\" href=\"http://example.com/1\">post 1</a>\n<a rel=\"in-reply-to\" href=\"http://example.com/2\">post 2</a>\n<a rel=\"alternate home\"\n   href=\"http://example.com/fr\"\n   media=\"handheld\"\n   hreflang=\"fr\">French mobile homepage</a>";
+   var expected = {"items":[],"rels":{"author":["http://example.com/a","http://example.com/b"],"in-reply-to":["http://example.com/1","http://example.com/2"],"home":["http://example.com/fr"],"alternate":["http://example.com/fr"]},"rel-urls":{"http://example.com/a":{"rels":["author"],"text":"author a"},"http://example.com/b":{"rels":["author"],"text":"author b"},"http://example.com/1":{"rels":["in-reply-to"],"text":"post 1"},"http://example.com/2":{"rels":["in-reply-to"],"text":"post 2"},"http://example.com/fr":{"rels":["alternate","home"],"media":"handheld","hreflang":"fr","text":"French mobile homepage"}}};
+
+   it('rel-urls', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-rel-varying-text-duplicate-rels.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-rel-varying-text-duplicate-rels.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/rel/varying-text-duplicate-rels
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('rel', function() {
-   var htmlFragment = "This is a contrived example - not found links like this in the wild:\n<a href=\"http://ma.tt/category/asides/\" rel=\"category tag\">Asides</a>\n<a href=\"http://ma.tt/category/asides/\" rel=\"category tag\">B-sides</a>\n<a href=\"http://ma.tt/category/asides/\" rel=\"category tag\">seasides</a>";
-   var expected = {"rels":{"category":["http://ma.tt/category/asides/"],"tag":["http://ma.tt/category/asides/"]},"items":[],"rel-urls":{"http://ma.tt/category/asides/":{"rels":["category","tag"],"text":"Asides"}}};
-
-   it('varying-text-duplicate-rels', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/rel/varying-text-duplicate-rels
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('rel', function() {
+   var htmlFragment = "This is a contrived example - not found links like this in the wild:\n<a href=\"http://ma.tt/category/asides/\" rel=\"category tag\">Asides</a>\n<a href=\"http://ma.tt/category/asides/\" rel=\"category tag\">B-sides</a>\n<a href=\"http://ma.tt/category/asides/\" rel=\"category tag\">seasides</a>";
+   var expected = {"rels":{"category":["http://ma.tt/category/asides/"],"tag":["http://ma.tt/category/asides/"]},"items":[],"rel-urls":{"http://ma.tt/category/asides/":{"rels":["category","tag"],"text":"Asides"}}};
+
+   it('varying-text-duplicate-rels', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-rel-xfn-all.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-rel-xfn-all.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/rel/xfn-all
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('rel', function() {
-   var htmlFragment = "<ul>\n    <li><a rel=\"friend\" href=\"http://example.com/profile/jane\">jane</a></li>\n    <li><a rel=\"acquaintance\" href=\"http://example.com/profile/jeo\">jeo</a></li>\n    <li><a rel=\"contact\" href=\"http://example.com/profile/lily\">lily</a></li>\n    <li><a rel=\"met\" href=\"http://example.com/profile/oliver\">oliver</a></li>\n    <li><a rel=\"co-worker\" href=\"http://example.com/profile/emily\">emily</a></li>\n    <li><a rel=\"colleague\" href=\"http://example.com/profile/jack\">jack</a></li>\n    <li><a rel=\"neighbor\" href=\"http://example.com/profile/isabella\">isabella</a></li>\n    <li><a rel=\"child\" href=\"http://example.com/profile/harry\">harry</a></li>\n    <li><a rel=\"parent\" href=\"http://example.com/profile/sophia\">sophia</a></li>\n    <li><a rel=\"sibling\" href=\"http://example.com/profile/charlie\">charlie</a></li>\n    <li><a rel=\"spouse\" href=\"http://example.com/profile/olivia\">olivia</a></li>\n    <li><a rel=\"kin\" href=\"http://example.com/profile/james\">james</a></li>\n    <li><a rel=\"muse\" href=\"http://example.com/profile/ava\">ava</a></li>\n    <li><a rel=\"crush\" href=\"http://example.com/profile/joshua\">joshua</a></li>\n    <li><a rel=\"date\" href=\"http://example.com/profile/chloe\">chloe</a></li>\n    <li><a rel=\"sweetheart\" href=\"http://example.com/profile/alfie\">alfie</a></li>\n    <li><a rel=\"me\" href=\"http://example.com/profile/isla\">isla</a></li>\n</ul>";
-   var expected = {"items":[],"rels":{"friend":["http://example.com/profile/jane"],"acquaintance":["http://example.com/profile/jeo"],"contact":["http://example.com/profile/lily"],"met":["http://example.com/profile/oliver"],"co-worker":["http://example.com/profile/emily"],"colleague":["http://example.com/profile/jack"],"neighbor":["http://example.com/profile/isabella"],"child":["http://example.com/profile/harry"],"parent":["http://example.com/profile/sophia"],"sibling":["http://example.com/profile/charlie"],"spouse":["http://example.com/profile/olivia"],"kin":["http://example.com/profile/james"],"muse":["http://example.com/profile/ava"],"crush":["http://example.com/profile/joshua"],"date":["http://example.com/profile/chloe"],"sweetheart":["http://example.com/profile/alfie"],"me":["http://example.com/profile/isla"]},"rel-urls":{"http://example.com/profile/jane":{"text":"jane","rels":["friend"]},"http://example.com/profile/jeo":{"text":"jeo","rels":["acquaintance"]},"http://example.com/profile/lily":{"text":"lily","rels":["contact"]},"http://example.com/profile/oliver":{"text":"oliver","rels":["met"]},"http://example.com/profile/emily":{"text":"emily","rels":["co-worker"]},"http://example.com/profile/jack":{"text":"jack","rels":["colleague"]},"http://example.com/profile/isabella":{"text":"isabella","rels":["neighbor"]},"http://example.com/profile/harry":{"text":"harry","rels":["child"]},"http://example.com/profile/sophia":{"text":"sophia","rels":["parent"]},"http://example.com/profile/charlie":{"text":"charlie","rels":["sibling"]},"http://example.com/profile/olivia":{"text":"olivia","rels":["spouse"]},"http://example.com/profile/james":{"text":"james","rels":["kin"]},"http://example.com/profile/ava":{"text":"ava","rels":["muse"]},"http://example.com/profile/joshua":{"text":"joshua","rels":["crush"]},"http://example.com/profile/chloe":{"text":"chloe","rels":["date"]},"http://example.com/profile/alfie":{"text":"alfie","rels":["sweetheart"]},"http://example.com/profile/isla":{"text":"isla","rels":["me"]}}};
-
-   it('xfn-all', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/rel/xfn-all
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('rel', function() {
+   var htmlFragment = "<ul>\n    <li><a rel=\"friend\" href=\"http://example.com/profile/jane\">jane</a></li>\n    <li><a rel=\"acquaintance\" href=\"http://example.com/profile/jeo\">jeo</a></li>\n    <li><a rel=\"contact\" href=\"http://example.com/profile/lily\">lily</a></li>\n    <li><a rel=\"met\" href=\"http://example.com/profile/oliver\">oliver</a></li>\n    <li><a rel=\"co-worker\" href=\"http://example.com/profile/emily\">emily</a></li>\n    <li><a rel=\"colleague\" href=\"http://example.com/profile/jack\">jack</a></li>\n    <li><a rel=\"neighbor\" href=\"http://example.com/profile/isabella\">isabella</a></li>\n    <li><a rel=\"child\" href=\"http://example.com/profile/harry\">harry</a></li>\n    <li><a rel=\"parent\" href=\"http://example.com/profile/sophia\">sophia</a></li>\n    <li><a rel=\"sibling\" href=\"http://example.com/profile/charlie\">charlie</a></li>\n    <li><a rel=\"spouse\" href=\"http://example.com/profile/olivia\">olivia</a></li>\n    <li><a rel=\"kin\" href=\"http://example.com/profile/james\">james</a></li>\n    <li><a rel=\"muse\" href=\"http://example.com/profile/ava\">ava</a></li>\n    <li><a rel=\"crush\" href=\"http://example.com/profile/joshua\">joshua</a></li>\n    <li><a rel=\"date\" href=\"http://example.com/profile/chloe\">chloe</a></li>\n    <li><a rel=\"sweetheart\" href=\"http://example.com/profile/alfie\">alfie</a></li>\n    <li><a rel=\"me\" href=\"http://example.com/profile/isla\">isla</a></li>\n</ul>";
+   var expected = {"items":[],"rels":{"friend":["http://example.com/profile/jane"],"acquaintance":["http://example.com/profile/jeo"],"contact":["http://example.com/profile/lily"],"met":["http://example.com/profile/oliver"],"co-worker":["http://example.com/profile/emily"],"colleague":["http://example.com/profile/jack"],"neighbor":["http://example.com/profile/isabella"],"child":["http://example.com/profile/harry"],"parent":["http://example.com/profile/sophia"],"sibling":["http://example.com/profile/charlie"],"spouse":["http://example.com/profile/olivia"],"kin":["http://example.com/profile/james"],"muse":["http://example.com/profile/ava"],"crush":["http://example.com/profile/joshua"],"date":["http://example.com/profile/chloe"],"sweetheart":["http://example.com/profile/alfie"],"me":["http://example.com/profile/isla"]},"rel-urls":{"http://example.com/profile/jane":{"text":"jane","rels":["friend"]},"http://example.com/profile/jeo":{"text":"jeo","rels":["acquaintance"]},"http://example.com/profile/lily":{"text":"lily","rels":["contact"]},"http://example.com/profile/oliver":{"text":"oliver","rels":["met"]},"http://example.com/profile/emily":{"text":"emily","rels":["co-worker"]},"http://example.com/profile/jack":{"text":"jack","rels":["colleague"]},"http://example.com/profile/isabella":{"text":"isabella","rels":["neighbor"]},"http://example.com/profile/harry":{"text":"harry","rels":["child"]},"http://example.com/profile/sophia":{"text":"sophia","rels":["parent"]},"http://example.com/profile/charlie":{"text":"charlie","rels":["sibling"]},"http://example.com/profile/olivia":{"text":"olivia","rels":["spouse"]},"http://example.com/profile/james":{"text":"james","rels":["kin"]},"http://example.com/profile/ava":{"text":"ava","rels":["muse"]},"http://example.com/profile/joshua":{"text":"joshua","rels":["crush"]},"http://example.com/profile/chloe":{"text":"chloe","rels":["date"]},"http://example.com/profile/alfie":{"text":"alfie","rels":["sweetheart"]},"http://example.com/profile/isla":{"text":"isla","rels":["me"]}}};
+
+   it('xfn-all', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/microformats/test/standards-tests/mf-v2-rel-xfn-elsewhere.js
+++ b/toolkit/components/microformats/test/standards-tests/mf-v2-rel-xfn-elsewhere.js
@@ -1,27 +1,27 @@
-/*
-Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
-Mocha integration test from: microformats-v2/rel/xfn-elsewhere
-The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
-*/
-
-assert = chai.assert;
-
-
-describe('rel', function() {
-   var htmlFragment = "<ul>\n    <li><a rel=\"me\" href=\"http://twitter.com/glennjones\">twitter</a></li>\n    <li><a rel=\"me\" href=\"http://delicious.com/glennjonesnet/\">delicious</a></li>\n    <li><a rel=\"me\" href=\"https://plus.google.com/u/0/105161464208920272734/about\">google+</a></li>\n    <li><a rel=\"me\" href=\"http://lanyrd.com/people/glennjones/\">lanyrd</a></li>\n    <li><a rel=\"me\" href=\"http://github.com/glennjones\">github</a></li>\n    <li><a rel=\"me\" href=\"http://www.flickr.com/photos/glennjonesnet/\">flickr</a></li>\n    <li><a rel=\"me\" href=\"http://www.linkedin.com/in/glennjones\">linkedin</a></li>\n    <li><a rel=\"me\" href=\"http://www.slideshare.net/glennjones/presentations\">slideshare</a></li>\n</ul>";
-   var expected = {"items":[],"rels":{"me":["http://twitter.com/glennjones","http://delicious.com/glennjonesnet/","https://plus.google.com/u/0/105161464208920272734/about","http://lanyrd.com/people/glennjones/","http://github.com/glennjones","http://www.flickr.com/photos/glennjonesnet/","http://www.linkedin.com/in/glennjones","http://www.slideshare.net/glennjones/presentations"]},"rel-urls":{"http://twitter.com/glennjones":{"text":"twitter","rels":["me"]},"http://delicious.com/glennjonesnet/":{"text":"delicious","rels":["me"]},"https://plus.google.com/u/0/105161464208920272734/about":{"text":"google+","rels":["me"]},"http://lanyrd.com/people/glennjones/":{"text":"lanyrd","rels":["me"]},"http://github.com/glennjones":{"text":"github","rels":["me"]},"http://www.flickr.com/photos/glennjonesnet/":{"text":"flickr","rels":["me"]},"http://www.linkedin.com/in/glennjones":{"text":"linkedin","rels":["me"]},"http://www.slideshare.net/glennjones/presentations":{"text":"slideshare","rels":["me"]}}};
-
-   it('xfn-elsewhere', function(){
-       var doc, dom, node, options, parser, found;
-       dom = new DOMParser();
-       doc = dom.parseFromString( htmlFragment, 'text/html' );
-       options ={
-       		'document': doc,
-       		'node': doc,
-       		'baseUrl': 'http://example.com',
-       		'dateFormat': 'html5'
-       };
-       found = Microformats.get( options );
-       assert.deepEqual(found, expected);
-   });
-});
+/*
+Microformats Test Suite - Downloaded from github repo: microformats/tests version v0.1.24
+Mocha integration test from: microformats-v2/rel/xfn-elsewhere
+The test was built on Fri Sep 25 2015 13:26:26 GMT+0100 (BST)
+*/
+
+assert = chai.assert;
+
+
+describe('rel', function() {
+   var htmlFragment = "<ul>\n    <li><a rel=\"me\" href=\"http://twitter.com/glennjones\">twitter</a></li>\n    <li><a rel=\"me\" href=\"http://delicious.com/glennjonesnet/\">delicious</a></li>\n    <li><a rel=\"me\" href=\"https://plus.google.com/u/0/105161464208920272734/about\">google+</a></li>\n    <li><a rel=\"me\" href=\"http://lanyrd.com/people/glennjones/\">lanyrd</a></li>\n    <li><a rel=\"me\" href=\"http://github.com/glennjones\">github</a></li>\n    <li><a rel=\"me\" href=\"http://www.flickr.com/photos/glennjonesnet/\">flickr</a></li>\n    <li><a rel=\"me\" href=\"http://www.linkedin.com/in/glennjones\">linkedin</a></li>\n    <li><a rel=\"me\" href=\"http://www.slideshare.net/glennjones/presentations\">slideshare</a></li>\n</ul>";
+   var expected = {"items":[],"rels":{"me":["http://twitter.com/glennjones","http://delicious.com/glennjonesnet/","https://plus.google.com/u/0/105161464208920272734/about","http://lanyrd.com/people/glennjones/","http://github.com/glennjones","http://www.flickr.com/photos/glennjonesnet/","http://www.linkedin.com/in/glennjones","http://www.slideshare.net/glennjones/presentations"]},"rel-urls":{"http://twitter.com/glennjones":{"text":"twitter","rels":["me"]},"http://delicious.com/glennjonesnet/":{"text":"delicious","rels":["me"]},"https://plus.google.com/u/0/105161464208920272734/about":{"text":"google+","rels":["me"]},"http://lanyrd.com/people/glennjones/":{"text":"lanyrd","rels":["me"]},"http://github.com/glennjones":{"text":"github","rels":["me"]},"http://www.flickr.com/photos/glennjonesnet/":{"text":"flickr","rels":["me"]},"http://www.linkedin.com/in/glennjones":{"text":"linkedin","rels":["me"]},"http://www.slideshare.net/glennjones/presentations":{"text":"slideshare","rels":["me"]}}};
+
+   it('xfn-elsewhere', function(){
+       var doc, dom, node, options, parser, found;
+       dom = new DOMParser();
+       doc = dom.parseFromString( htmlFragment, 'text/html' );
+       options ={
+       		'document': doc,
+       		'node': doc,
+       		'baseUrl': 'http://example.com',
+       		'dateFormat': 'html5'
+       };
+       found = Microformats.get( options );
+       assert.deepEqual(found, expected);
+   });
+});
--- a/toolkit/components/thumbnails/test/thumbnails_crash_content_helper.js
+++ b/toolkit/components/thumbnails/test/thumbnails_crash_content_helper.js
@@ -1,31 +1,31 @@
-/* Any copyright is dedicated to the Public Domain.
-* http://creativecommons.org/publicdomain/zero/1.0/ */
-
-var Cu = Components.utils;
-
-// Ideally we would use CrashTestUtils.jsm, but that's only available for
-// xpcshell tests - so we just copy a ctypes crasher from it.
-Cu.import("resource://gre/modules/ctypes.jsm");
-var crash = function() { // this will crash when called.
-  let zero = new ctypes.intptr_t(8);
-  let badptr = ctypes.cast(zero, ctypes.PointerType(ctypes.int32_t));
-  badptr.contents
-};
-
-
-var TestHelper = {
-  init: function() {
-    addMessageListener("thumbnails-test:crash", this);
-  },
-
-  receiveMessage: function(msg) {
-    switch (msg.name) {
-      case "thumbnails-test:crash":
-        privateNoteIntentionalCrash();
-        crash();
-      break;
-    }
-  },
-}
-
-TestHelper.init();
+/* Any copyright is dedicated to the Public Domain.
+* http://creativecommons.org/publicdomain/zero/1.0/ */
+
+var Cu = Components.utils;
+
+// Ideally we would use CrashTestUtils.jsm, but that's only available for
+// xpcshell tests - so we just copy a ctypes crasher from it.
+Cu.import("resource://gre/modules/ctypes.jsm");
+var crash = function() { // this will crash when called.
+  let zero = new ctypes.intptr_t(8);
+  let badptr = ctypes.cast(zero, ctypes.PointerType(ctypes.int32_t));
+  badptr.contents
+};
+
+
+var TestHelper = {
+  init: function() {
+    addMessageListener("thumbnails-test:crash", this);
+  },
+
+  receiveMessage: function(msg) {
+    switch (msg.name) {
+      case "thumbnails-test:crash":
+        privateNoteIntentionalCrash();
+        crash();
+      break;
+    }
+  },
+}
+
+TestHelper.init();
--- a/toolkit/content/tests/browser/browser_bug982298.js
+++ b/toolkit/content/tests/browser/browser_bug982298.js
@@ -1,85 +1,85 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-var Ci = Components.interfaces;
-
-var tab;
-var browser;
-
-const scrollHtml =
-  "<textarea id=\"textarea1\" row=2>Firefox\n\nFirefox\n\n\n\n\n\n\n\n\n\n" +
-  "</textarea><a href=\"about:blank\">blank</a>";
-
-const scrollTest =
-  "var textarea = content.document.getElementById(\"textarea1\");" +
-  "textarea.scrollTop = textarea.scrollHeight;" +
-  "sendAsyncMessage(\"ScrollDone\", { });"
-
-function test()
-{
-  waitForExplicitFinish();
-
-  tab = gBrowser.addTab("data:text/html;base64," +
-                        btoa(scrollHtml));
-  browser = gBrowser.getBrowserForTab(tab);
-  gBrowser.selectedTab = tab;
-
-  browser.addEventListener("load", find, true);
-}
-
-function find()
-{
-  browser.removeEventListener("load", find, true);
-  let listener = {
-    onFindResult: function(aData) {
-      browser.finder.removeResultListener(listener);
-
-      ok(aData.result == Ci.nsITypeAheadFind.FIND_FOUND, "should find string");
-
-      browser.messageManager.addMessageListener("ScrollDone",
-                                                function f(aMsg) {
-        browser.messageManager.removeMessageListener("ScrollDone", f);
-        browser.loadURI("about:blank");
-        browser.addEventListener("load", findAgain, true);
-      });
-
-      // scroll textarea to bottom
-      browser.messageManager.loadFrameScript("data:text/javascript;base64," +
-                                             btoa(scrollTest), false);
-
-    },
-  };
-  browser.finder.addResultListener(listener);
-  gFindBar.onFindCommand();
-  EventUtils.sendString("F");
-}
-
-function findAgain()
-{
-  browser.removeEventListener("load", findAgain, true);
-
-  ok(browser.currentURI.spec == "about:blank", "cannot navigate to about:blank");
-  let listener = {
-    onFindResult: function(aData) {
-      browser.finder.removeResultListener(listener);
-      cleanup();
-    },
-  };
-
-  browser.finder.addResultListener(listener);
-  // find again needs delay for crash test
-  setTimeout(function() {
-    // ignore exception if occured
-    try {
-      gFindBar.onFindAgainCommand(false);
-    } catch (e) {
-    }
-    cleanup();
-  }, 0);
-}
-
-function cleanup()
-{
-  gBrowser.removeTab(tab);
-  finish();
-}
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+var Ci = Components.interfaces;
+
+var tab;
+var browser;
+
+const scrollHtml =
+  "<textarea id=\"textarea1\" row=2>Firefox\n\nFirefox\n\n\n\n\n\n\n\n\n\n" +
+  "</textarea><a href=\"about:blank\">blank</a>";
+
+const scrollTest =
+  "var textarea = content.document.getElementById(\"textarea1\");" +
+  "textarea.scrollTop = textarea.scrollHeight;" +
+  "sendAsyncMessage(\"ScrollDone\", { });"
+
+function test()
+{
+  waitForExplicitFinish();
+
+  tab = gBrowser.addTab("data:text/html;base64," +
+                        btoa(scrollHtml));
+  browser = gBrowser.getBrowserForTab(tab);
+  gBrowser.selectedTab = tab;
+
+  browser.addEventListener("load", find, true);
+}
+
+function find()
+{
+  browser.removeEventListener("load", find, true);
+  let listener = {
+    onFindResult: function(aData) {
+      browser.finder.removeResultListener(listener);
+
+      ok(aData.result == Ci.nsITypeAheadFind.FIND_FOUND, "should find string");
+
+      browser.messageManager.addMessageListener("ScrollDone",
+                                                function f(aMsg) {
+        browser.messageManager.removeMessageListener("ScrollDone", f);
+        browser.loadURI("about:blank");
+        browser.addEventListener("load", findAgain, true);
+      });
+
+      // scroll textarea to bottom
+      browser.messageManager.loadFrameScript("data:text/javascript;base64," +
+                                             btoa(scrollTest), false);
+
+    },
+  };
+  browser.finder.addResultListener(listener);
+  gFindBar.onFindCommand();
+  EventUtils.sendString("F");
+}
+
+function findAgain()
+{
+  browser.removeEventListener("load", findAgain, true);
+
+  ok(browser.currentURI.spec == "about:blank", "cannot navigate to about:blank");
+  let listener = {
+    onFindResult: function(aData) {
+      browser.finder.removeResultListener(listener);
+      cleanup();
+    },
+  };
+
+  browser.finder.addResultListener(listener);
+  // find again needs delay for crash test
+  setTimeout(function() {
+    // ignore exception if occured
+    try {
+      gFindBar.onFindAgainCommand(false);
+    } catch (e) {
+    }
+    cleanup();
+  }, 0);
+}
+
+function cleanup()
+{
+  gBrowser.removeTab(tab);
+  finish();
+}
--- a/toolkit/content/tests/widgets/head.js
+++ b/toolkit/content/tests/widgets/head.js
@@ -1,23 +1,23 @@
-"use strict";
-
-function waitForCondition(condition, nextTest, errorMsg) {
-  var tries = 0;
-  var interval = setInterval(function() {
-    if (tries >= 30) {
-      ok(false, errorMsg);
-      moveOn();
-    }
-    var conditionPassed;
-    try {
-      conditionPassed = condition();
-    } catch (e) {
-      ok(false, e + "\n" + e.stack);
-      conditionPassed = false;
-    }
-    if (conditionPassed) {
-      moveOn();
-    }
-    tries++;
-  }, 100);
-  var moveOn = function() { clearInterval(interval); nextTest(); };
-}
+"use strict";
+
+function waitForCondition(condition, nextTest, errorMsg) {
+  var tries = 0;
+  var interval = setInterval(function() {
+    if (tries >= 30) {
+      ok(false, errorMsg);
+      moveOn();
+    }
+    var conditionPassed;
+    try {
+      conditionPassed = condition();
+    } catch (e) {
+      ok(false, e + "\n" + e.stack);
+      conditionPassed = false;
+    }
+    if (conditionPassed) {
+      moveOn();
+    }
+    tries++;
+  }, 100);
+  var moveOn = function() { clearInterval(interval); nextTest(); };
+}
--- a/toolkit/crashreporter/test/browser/browser_bug471404.js
+++ b/toolkit/crashreporter/test/browser/browser_bug471404.js
@@ -1,67 +1,67 @@
-function check_clear_visible(tab, aVisible) {
-  let doc = gBrowser.getBrowserForTab(tab).contentDocument;
-  let visible = false;
-  let button = doc.getElementById("clear-reports");
-  if (button) {
-    let style = doc.defaultView.getComputedStyle(button, "");
-    if (style.display != "none" &&
-        style.visibility == "visible")
-      visible = true;
-  }
-  is(visible, aVisible,
-     "clear reports button is " + (aVisible ? "visible" : "hidden"));
-}
-
-// each test here has a setup (run before loading about:crashes) and onload (run after about:crashes loads)
-var _tests = [{setup: null, onload: function(tab) { check_clear_visible(tab, false); }},
-              {setup: function(crD) { add_fake_crashes(crD, 1); },
-               onload: function(tab) { check_clear_visible(tab, true); }}
-              ];
-var _current_test = 0;
-
-function run_test_setup(crD) {
-  if (_tests[_current_test].setup) {
-    _tests[_current_test].setup(crD);
-  }
-}
-
-function run_test_onload(tab) {
-  if (_tests[_current_test].onload) {
-    _tests[_current_test].onload(tab);
-  }
-  _current_test++;
-
-  if (_current_test == _tests.length) {
-    cleanup_fake_appdir();
-    gBrowser.removeTab(tab);
-    finish();
-    return false;
-  }
-  return true;
-}
-
-function test() {
-  waitForExplicitFinish();
-  let appD = make_fake_appdir();
-  let crD = appD.clone();
-  crD.append("Crash Reports");
-
-  let tab = gBrowser.selectedTab = gBrowser.addTab("about:blank");
-  let browser = gBrowser.getBrowserForTab(tab);
-  let onLoad = function () {
-    executeSoon(function() {
-      if (run_test_onload(tab)) {
-        // prep and run the next test
-        run_test_setup(crD);
-        executeSoon(function() { browser.loadURI("about:crashes", null, null); });
-      }
-    });
-  };
-  browser.addEventListener("load", onLoad, true);
-  registerCleanupFunction(function () {
-    browser.removeEventListener("load", onLoad, true);
-  });
-  // kick things off
-  run_test_setup(crD);
-  browser.loadURI("about:crashes", null, null);
-}
+function check_clear_visible(tab, aVisible) {
+  let doc = gBrowser.getBrowserForTab(tab).contentDocument;
+  let visible = false;
+  let button = doc.getElementById("clear-reports");
+  if (button) {
+    let style = doc.defaultView.getComputedStyle(button, "");
+    if (style.display != "none" &&
+        style.visibility == "visible")
+      visible = true;
+  }
+  is(visible, aVisible,
+     "clear reports button is " + (aVisible ? "visible" : "hidden"));
+}
+
+// each test here has a setup (run before loading about:crashes) and onload (run after about:crashes loads)
+var _tests = [{setup: null, onload: function(tab) { check_clear_visible(tab, false); }},
+              {setup: function(crD) { add_fake_crashes(crD, 1); },
+               onload: function(tab) { check_clear_visible(tab, true); }}
+              ];
+var _current_test = 0;
+
+function run_test_setup(crD) {
+  if (_tests[_current_test].setup) {
+    _tests[_current_test].setup(crD);
+  }
+}
+
+function run_test_onload(tab) {
+  if (_tests[_current_test].onload) {
+    _tests[_current_test].onload(tab);
+  }
+  _current_test++;
+
+  if (_current_test == _tests.length) {
+    cleanup_fake_appdir();
+    gBrowser.removeTab(tab);
+    finish();
+    return false;
+  }
+  return true;
+}
+
+function test() {
+  waitForExplicitFinish();
+  let appD = make_fake_appdir();
+  let crD = appD.clone();
+  crD.append("Crash Reports");
+
+  let tab = gBrowser.selectedTab = gBrowser.addTab("about:blank");
+  let browser = gBrowser.getBrowserForTab(tab);
+  let onLoad = function () {
+    executeSoon(function() {
+      if (run_test_onload(tab)) {
+        // prep and run the next test
+        run_test_setup(crD);
+        executeSoon(function() { browser.loadURI("about:crashes", null, null); });
+      }
+    });
+  };
+  browser.addEventListener("load", onLoad, true);
+  registerCleanupFunction(function () {
+    browser.removeEventListener("load", onLoad, true);
+  });
+  // kick things off
+  run_test_setup(crD);
+  browser.loadURI("about:crashes", null, null);
+}
--- a/toolkit/modules/PermissionsUtils.jsm
+++ b/toolkit/modules/PermissionsUtils.jsm
@@ -1,99 +1,99 @@
-// This Source Code Form is subject to the terms of the Mozilla Public
-// License, v. 2.0. If a copy of the MPL was not distributed with this
-// file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-this.EXPORTED_SYMBOLS = ["PermissionsUtils"];
-
-const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
-
-Cu.import("resource://gre/modules/Services.jsm");
-Cu.import("resource://gre/modules/BrowserUtils.jsm")
-
-
-var gImportedPrefBranches = new Set();
-
-function importPrefBranch(aPrefBranch, aPermission, aAction) {
-  let list = Services.prefs.getChildList(aPrefBranch, {});
-
-  for (let pref of list) {
-    let origins = "";
-    try {
-      origins = Services.prefs.getCharPref(pref);
-    } catch (e) {}
-
-    if (!origins)
-      continue;
-
-    origins = origins.split(",");
-
-    for (let origin of origins) {
-      let principals = [];
-      try {
-        principals = [ Services.scriptSecurityManager.createCodebasePrincipalFromOrigin(origin) ];
-      } catch (e) {
-        // This preference used to contain a list of hosts. For back-compat
-        // reasons, we convert these hosts into http:// and https:// permissions
-        // on default ports.
-        try {
-          let httpURI = Services.io.newURI("http://" + origin, null, null);
-          let httpsURI = Services.io.newURI("https://" + origin, null, null);
-
-          principals = [
-            Services.scriptSecurityManager.createCodebasePrincipal(httpURI, {}),
-            Services.scriptSecurityManager.createCodebasePrincipal(httpsURI, {})
-          ];
-        } catch (e2) {}
-      }
-
-      for (let principal of principals) {
-        try {
-          Services.perms.addFromPrincipal(principal, aPermission, aAction);
-        } catch (e) {}
-      }
-    }
-
-    Services.prefs.setCharPref(pref, "");
-  }
-}
-
-
-this.PermissionsUtils = {
-  /**
-   * Import permissions from perferences to the Permissions Manager. After being
-   * imported, all processed permissions will be set to an empty string.
-   * Perferences are only processed once during the application's
-   * lifetime - it's safe to call this multiple times without worrying about
-   * doing unnecessary work, as the preferences branch will only be processed
-   * the first time.
-   *
-   * @param aPrefBranch  Preferences branch to import from. The preferences
-   *                     under this branch can specify whitelist (ALLOW_ACTION)
-   *                     or blacklist (DENY_ACTION) additions using perference
-   *                     names of the form:
-   *                     * <BRANCH>.whitelist.add.<ID>
-   *                     * <BRANCH>.blacklist.add.<ID>
-   *                     Where <ID> can be any valid preference name.
-   *                     The value is expected to be a comma separated list of
-   *                     host named. eg:
-   *                     * something.example.com
-   *                     * foo.exmaple.com,bar.example.com
-   *
-   * @param aPermission Permission name to be passsed to the Permissions
-   *                    Manager.
-   */
-  importFromPrefs: function(aPrefBranch, aPermission) {
-    if (!aPrefBranch.endsWith("."))
-      aPrefBranch += ".";
-
-    // Ensure we only import this pref branch once.
-    if (gImportedPrefBranches.has(aPrefBranch))
-     return;
-
-    importPrefBranch(aPrefBranch + "whitelist.add", aPermission,
-                     Services.perms.ALLOW_ACTION);
-    importPrefBranch(aPrefBranch + "blacklist.add", aPermission,
-                     Services.perms.DENY_ACTION);
-
-    gImportedPrefBranches.add(aPrefBranch);
-  }
-};
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+this.EXPORTED_SYMBOLS = ["PermissionsUtils"];
+
+const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
+
+Cu.import("resource://gre/modules/Services.jsm");
+Cu.import("resource://gre/modules/BrowserUtils.jsm")
+
+
+var gImportedPrefBranches = new Set();
+
+function importPrefBranch(aPrefBranch, aPermission, aAction) {
+  let list = Services.prefs.getChildList(aPrefBranch, {});
+
+  for (let pref of list) {
+    let origins = "";
+    try {
+      origins = Services.prefs.getCharPref(pref);
+    } catch (e) {}
+
+    if (!origins)
+      continue;
+
+    origins = origins.split(",");
+
+    for (let origin of origins) {
+      let principals = [];
+      try {
+        principals = [ Services.scriptSecurityManager.createCodebasePrincipalFromOrigin(origin) ];
+      } catch (e) {
+        // This preference used to contain a list of hosts. For back-compat
+        // reasons, we convert these hosts into http:// and https:// permissions
+        // on default ports.
+        try {
+          let httpURI = Services.io.newURI("http://" + origin, null, null);
+          let httpsURI = Services.io.newURI("https://" + origin, null, null);
+
+          principals = [
+            Services.scriptSecurityManager.createCodebasePrincipal(httpURI, {}),
+            Services.scriptSecurityManager.createCodebasePrincipal(httpsURI, {})
+          ];
+        } catch (e2) {}
+      }
+
+      for (let principal of principals) {
+        try {
+          Services.perms.addFromPrincipal(principal, aPermission, aAction);
+        } catch (e) {}
+      }
+    }
+
+    Services.prefs.setCharPref(pref, "");
+  }
+}
+
+
+this.PermissionsUtils = {
+  /**
+   * Import permissions from perferences to the Permissions Manager. After being
+   * imported, all processed permissions will be set to an empty string.
+   * Perferences are only processed once during the application's
+   * lifetime - it's safe to call this multiple times without worrying about
+   * doing unnecessary work, as the preferences branch will only be processed
+   * the first time.
+   *
+   * @param aPrefBranch  Preferences branch to import from. The preferences
+   *                     under this branch can specify whitelist (ALLOW_ACTION)
+   *                     or blacklist (DENY_ACTION) additions using perference
+   *                     names of the form:
+   *                     * <BRANCH>.whitelist.add.<ID>
+   *                     * <BRANCH>.blacklist.add.<ID>
+   *                     Where <ID> can be any valid preference name.
+   *                     The value is expected to be a comma separated list of
+   *                     host named. eg:
+   *                     * something.example.com
+   *                     * foo.exmaple.com,bar.example.com
+   *
+   * @param aPermission Permission name to be passsed to the Permissions
+   *                    Manager.
+   */
+  importFromPrefs: function(aPrefBranch, aPermission) {
+    if (!aPrefBranch.endsWith("."))
+      aPrefBranch += ".";
+
+    // Ensure we only import this pref branch once.
+    if (gImportedPrefBranches.has(aPrefBranch))
+     return;
+
+    importPrefBranch(aPrefBranch + "whitelist.add", aPermission,
+                     Services.perms.ALLOW_ACTION);
+    importPrefBranch(aPrefBranch + "blacklist.add", aPermission,
+                     Services.perms.DENY_ACTION);
+
+    gImportedPrefBranches.add(aPrefBranch);
+  }
+};
--- a/toolkit/modules/tests/xpcshell/test_Http.js
+++ b/toolkit/modules/tests/xpcshell/test_Http.js
@@ -1,257 +1,257 @@
-/* Any copyright is dedicated to the Public Domain.
-   http://creativecommons.org/publicdomain/zero/1.0/ */
-
-Components.utils.import("resource://gre/modules/Http.jsm");
-Components.utils.import("resource://testing-common/httpd.js");
-
-const BinaryInputStream = Components.Constructor("@mozilla.org/binaryinputstream;1",
-  "nsIBinaryInputStream", "setInputStream");
-
-var server;
-
-const kDefaultServerPort = 9000;
-const kSuccessPath = "/success";
-const kBaseUrl = "http://localhost:" + kDefaultServerPort;
-const kSuccessUrl = kBaseUrl + kSuccessPath;
-
-const kPostPath = "/post";
-const kPostUrl = kBaseUrl + kPostPath;
-const kPostDataSent = [["foo", "bar"], ["complex", "!*()@"]];
-const kPostDataReceived = "foo=bar&complex=%21%2A%28%29%40";
-const kPostMimeTypeReceived = "application/x-www-form-urlencoded; charset=utf-8";
-
-const kJsonPostPath = "/json_post";
-const kJsonPostUrl = kBaseUrl + kJsonPostPath;
-const kJsonPostData = JSON.stringify(kPostDataSent);
-const kJsonPostMimeType = "application/json";
-
-const kPutPath = "/put";
-const kPutUrl = kBaseUrl + kPutPath;
-const kPutDataSent = [["P", "NP"]];
-const kPutDataReceived = "P=NP";
-
-const kGetPath = "/get";
-const kGetUrl = kBaseUrl + kGetPath;
-
-function successResult(aRequest, aResponse) {
-  aResponse.setStatusLine(null, 200, "OK");
-  aResponse.setHeader("Content-Type", "application/json");
-  aResponse.write("Success!");
-}
-
-function getDataChecker(aExpectedMethod, aExpectedData, aExpectedMimeType = null) {
-  return function(aRequest, aResponse) {
-    let body = new BinaryInputStream(aRequest.bodyInputStream);
-    let bytes = [];
-    let avail;
-    while ((avail = body.available()) > 0)
-      Array.prototype.push.apply(bytes, body.readByteArray(avail));
-
-    do_check_eq(aRequest.method, aExpectedMethod);
-
-    // Checking if the Content-Type is as expected.
-    if (aExpectedMimeType) {
-      let contentType = aRequest.getHeader("Content-Type");
-      do_check_eq(contentType, aExpectedMimeType);
-    }
-
-    var data = String.fromCharCode.apply(null, bytes);
-
-    do_check_eq(data, aExpectedData);
-
-    aResponse.setStatusLine(null, 200, "OK");
-    aResponse.setHeader("Content-Type", "application/json");
-    aResponse.write("Success!");
-  }
-}
-
-add_test(function test_successCallback() {
-  do_test_pending();
-  let options = {
-    onLoad: function(aResponse) {
-      do_check_eq(aResponse, "Success!");
-      do_test_finished();
-      run_next_test();
-    },
-    onError: function(e) {
-      do_check_true(false);
-      do_test_finished();
-      run_next_test();
-    }
-  }
-  httpRequest(kSuccessUrl, options);
-});
-
-add_test(function test_errorCallback() {
-  do_test_pending();
-  let options = {
-    onSuccess: function(aResponse) {
-      do_check_true(false);
-      do_test_finished();
-      run_next_test();
-    },
-    onError: function(e, aResponse) {
-      do_check_eq(e, "404 - Not Found");
-      do_test_finished();
-      run_next_test();
-    }
-  }
-  httpRequest(kBaseUrl + "/failure", options);
-});
-
-add_test(function test_PostData() {
-  do_test_pending();
-  let options = {
-    onLoad: function(aResponse) {
-      do_check_eq(aResponse, "Success!");
-      do_test_finished();
-      run_next_test();
-    },
-    onError: function(e) {
-      do_check_true(false);
-      do_test_finished();
-      run_next_test();
-    },
-    postData: kPostDataSent
-  }
-  httpRequest(kPostUrl, options);
-});
-
-add_test(function test_PutData() {
-  do_test_pending();
-  let options = {
-    method: "PUT",
-    onLoad: function(aResponse) {
-      do_check_eq(aResponse, "Success!");
-      do_test_finished();
-      run_next_test();
-    },
-    onError: function(e) {
-      do_check_true(false);
-      do_test_finished();
-      run_next_test();
-    },
-    postData: kPutDataSent
-  }
-  httpRequest(kPutUrl, options);
-});
-
-add_test(function test_GetData() {
-  do_test_pending();
-  let options = {
-    onLoad: function(aResponse) {
-      do_check_eq(aResponse, "Success!");
-      do_test_finished();
-      run_next_test();
-    },
-    onError: function(e) {
-      do_check_true(false);
-      do_test_finished();
-      run_next_test();
-    },
-    postData: null
-  }
-  httpRequest(kGetUrl, options);
-});
-
-add_test(function test_OptionalParameters() {
-  let options = {
-    onLoad: null,
-    onError: null,
-    logger: null
-  };
-  // Just make sure that nothing throws when doing this (i.e. httpRequest
-  // doesn't try to access null options).
-  httpRequest(kGetUrl, options);
-  run_next_test();
-});
-
-/**
- * Makes sure that httpRequest API allows setting a custom Content-Type header
- * for POST requests when data is a string.
- */
-add_test(function test_CustomContentTypeOnPost() {
-  do_test_pending();
-
-  // Preparing the request parameters.
-  let options = {
-    onLoad: function(aResponse) {
-      do_check_eq(aResponse, "Success!");
-      do_test_finished();
-      run_next_test();
-    },
-    onError: function(e) {
-      do_check_true(false);
-      do_test_finished();
-      run_next_test();
-    },
-    postData: kJsonPostData,
-    // Setting a custom Content-Type header.
-    headers: [['Content-Type', "application/json"]]
-  }
-
-  // Firing the request.
-  httpRequest(kJsonPostUrl, options);
-});
-
-/**
- * Ensures that the httpRequest API provides a way to override the response
- * MIME type.
- */
-add_test(function test_OverrideMimeType() {
-  do_test_pending();
-
-  // Preparing the request parameters.
-  const kMimeType = 'text/xml; charset=UTF-8';
-  let options = {
-    onLoad: function(aResponse, xhr) {
-      do_check_eq(aResponse, "Success!");
-
-      // Set the expected MIME-type.
-      let reportedMimeType = xhr.getResponseHeader("Content-Type");
-      do_check_neq(reportedMimeType, kMimeType);
-
-      // responseXML should not be not null if overriding mime type succeeded.
-      do_check_true(xhr.responseXML != null);
-
-      do_test_finished();
-      run_next_test();
-    },
-    onError: function(e) {
-      do_check_true(false);
-      do_test_finished();
-      run_next_test();
-    }
-  };
-
-  // Firing the request.
-  let xhr = httpRequest(kGetUrl, options);
-
-  // Override the response MIME type.
-  xhr.overrideMimeType(kMimeType);
-});
-
-function run_test() {
-  // Set up a mock HTTP server to serve a success page.
-  server = new HttpServer();
-  server.registerPathHandler(kSuccessPath, successResult);
-  server.registerPathHandler(kPostPath,
-                             getDataChecker("POST", kPostDataReceived,
-                                            kPostMimeTypeReceived));
-  server.registerPathHandler(kPutPath,
-                             getDataChecker("PUT", kPutDataReceived));
-  server.registerPathHandler(kGetPath, getDataChecker("GET", ""));
-  server.registerPathHandler(kJsonPostPath,
-                             getDataChecker("POST", kJsonPostData,
-                                            kJsonPostMimeType));
-
-  server.start(kDefaultServerPort);
-
-  run_next_test();
-
-  // Teardown.
-  do_register_cleanup(function() {
-    server.stop(function() { });
-  });
-}
-
+/* Any copyright is dedicated to the Public Domain.
+   http://creativecommons.org/publicdomain/zero/1.0/ */
+
+Components.utils.import("resource://gre/modules/Http.jsm");
+Components.utils.import("resource://testing-common/httpd.js");
+
+const BinaryInputStream = Components.Constructor("@mozilla.org/binaryinputstream;1",
+  "nsIBinaryInputStream", "setInputStream");
+
+var server;
+
+const kDefaultServerPort = 9000;
+const kSuccessPath = "/success";
+const kBaseUrl = "http://localhost:" + kDefaultServerPort;
+const kSuccessUrl = kBaseUrl + kSuccessPath;
+
+const kPostPath = "/post";
+const kPostUrl = kBaseUrl + kPostPath;
+const kPostDataSent = [["foo", "bar"], ["complex", "!*()@"]];
+const kPostDataReceived = "foo=bar&complex=%21%2A%28%29%40";
+const kPostMimeTypeReceived = "application/x-www-form-urlencoded; charset=utf-8";
+
+const kJsonPostPath = "/json_post";
+const kJsonPostUrl = kBaseUrl + kJsonPostPath;
+const kJsonPostData = JSON.stringify(kPostDataSent);
+const kJsonPostMimeType = "application/json";
+
+const kPutPath = "/put";
+const kPutUrl = kBaseUrl + kPutPath;
+const kPutDataSent = [["P", "NP"]];
+const kPutDataReceived = "P=NP";
+
+const kGetPath = "/get";
+const kGetUrl = kBaseUrl + kGetPath;
+
+function successResult(aRequest, aResponse) {
+  aResponse.setStatusLine(null, 200, "OK");
+  aResponse.setHeader("Content-Type", "application/json");
+  aResponse.write("Success!");
+}
+
+function getDataChecker(aExpectedMethod, aExpectedData, aExpectedMimeType = null) {
+  return function(aRequest, aResponse) {
+    let body = new BinaryInputStream(aRequest.bodyInputStream);
+    let bytes = [];
+    let avail;
+    while ((avail = body.available()) > 0)
+      Array.prototype.push.apply(bytes, body.readByteArray(avail));
+
+    do_check_eq(aRequest.method, aExpectedMethod);
+
+    // Checking if the Content-Type is as expected.
+    if (aExpectedMimeType) {
+      let contentType = aRequest.getHeader("Content-Type");
+      do_check_eq(contentType, aExpectedMimeType);
+    }
+
+    var data = String.fromCharCode.apply(null, bytes);
+
+    do_check_eq(data, aExpectedData);
+
+    aResponse.setStatusLine(null, 200, "OK");
+    aResponse.setHeader("Content-Type", "application/json");
+    aResponse.write("Success!");
+  }
+}
+
+add_test(function test_successCallback() {
+  do_test_pending();
+  let options = {
+    onLoad: function(aResponse) {
+      do_check_eq(aResponse, "Success!");
+      do_test_finished();
+      run_next_test();
+    },
+    onError: function(e) {
+      do_check_true(false);
+      do_test_finished();
+      run_next_test();
+    }
+  }
+  httpRequest(kSuccessUrl, options);
+});
+
+add_test(function test_errorCallback() {
+  do_test_pending();
+  let options = {
+    onSuccess: function(aResponse) {
+      do_check_true(false);
+      do_test_finished();
+      run_next_test();
+    },
+    onError: function(e, aResponse) {
+      do_check_eq(e, "404 - Not Found");
+      do_test_finished();
+      run_next_test();
+    }
+  }
+  httpRequest(kBaseUrl + "/failure", options);
+});
+
+add_test(function test_PostData() {
+  do_test_pending();
+  let options = {
+    onLoad: function(aResponse) {
+      do_check_eq(aResponse, "Success!");
+      do_test_finished();
+      run_next_test();
+    },
+    onError: function(e) {
+      do_check_true(false);
+      do_test_finished();
+      run_next_test();
+    },
+    postData: kPostDataSent
+  }
+  httpRequest(kPostUrl, options);
+});
+
+add_test(function test_PutData() {
+  do_test_pending();
+  let options = {
+    method: "PUT",
+    onLoad: function(aResponse) {
+      do_check_eq(aResponse, "Success!");
+      do_test_finished();
+      run_next_test();
+    },
+    onError: function(e) {
+      do_check_true(false);
+      do_test_finished();
+      run_next_test();
+    },
+    postData: kPutDataSent
+  }
+  httpRequest(kPutUrl, options);
+});
+
+add_test(function test_GetData() {
+  do_test_pending();
+  let options = {
+    onLoad: function(aResponse) {
+      do_check_eq(aResponse, "Success!");
+      do_test_finished();
+      run_next_test();
+    },
+    onError: function(e) {
+      do_check_true(false);
+      do_test_finished();
+      run_next_test();
+    },
+    postData: null
+  }
+  httpRequest(kGetUrl, options);
+});
+
+add_test(function test_OptionalParameters() {
+  let options = {
+    onLoad: null,
+    onError: null,
+    logger: null
+  };
+  // Just make sure that nothing throws when doing this (i.e. httpRequest
+  // doesn't try to access null options).
+  httpRequest(kGetUrl, options);
+  run_next_test();
+});
+
+/**
+ * Makes sure that httpRequest API allows setting a custom Content-Type header
+ * for POST requests when data is a string.
+ */
+add_test(function test_CustomContentTypeOnPost() {
+  do_test_pending();
+
+  // Preparing the request parameters.
+  let options = {
+    onLoad: function(aResponse) {
+      do_check_eq(aResponse, "Success!");
+      do_test_finished();
+      run_next_test();
+    },
+    onError: function(e) {
+      do_check_true(false);
+      do_test_finished();
+      run_next_test();
+    },
+    postData: kJsonPostData,
+    // Setting a custom Content-Type header.
+    headers: [['Content-Type', "application/json"]]
+  }
+
+  // Firing the request.
+  httpRequest(kJsonPostUrl, options);
+});
+
+/**
+ * Ensures that the httpRequest API provides a way to override the response
+ * MIME type.
+ */
+add_test(function test_OverrideMimeType() {
+  do_test_pending();
+
+  // Preparing the request parameters.
+  const kMimeType = 'text/xml; charset=UTF-8';
+  let options = {
+    onLoad: function(aResponse, xhr) {
+      do_check_eq(aResponse, "Success!");
+
+      // Set the expected MIME-type.
+      let reportedMimeType = xhr.getResponseHeader("Content-Type");
+      do_check_neq(reportedMimeType, kMimeType);
+
+      // responseXML should not be not null if overriding mime type succeeded.
+      do_check_true(xhr.responseXML != null);
+
+      do_test_finished();
+      run_next_test();
+    },
+    onError: function(e) {
+      do_check_true(false);
+      do_test_finished();
+      run_next_test();
+    }
+  };
+
+  // Firing the request.
+  let xhr = httpRequest(kGetUrl, options);
+
+  // Override the response MIME type.
+  xhr.overrideMimeType(kMimeType);
+});
+
+function run_test() {
+  // Set up a mock HTTP server to serve a success page.
+  server = new HttpServer();
+  server.registerPathHandler(kSuccessPath, successResult);
+  server.registerPathHandler(kPostPath,
+                             getDataChecker("POST", kPostDataReceived,
+                                            kPostMimeTypeReceived));
+  server.registerPathHandler(kPutPath,
+                             getDataChecker("PUT", kPutDataReceived));
+  server.registerPathHandler(kGetPath, getDataChecker("GET", ""));
+  server.registerPathHandler(kJsonPostPath,
+                             getDataChecker("POST", kJsonPostData,
+                                            kJsonPostMimeType));
+
+  server.start(kDefaultServerPort);
+
+  run_next_test();
+
+  // Teardown.
+  do_register_cleanup(function() {
+    server.stop(function() { });
+  });
+}
+
--- a/toolkit/modules/tests/xpcshell/test_PermissionsUtils.js
+++ b/toolkit/modules/tests/xpcshell/test_PermissionsUtils.js
@@ -1,85 +1,85 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-// Tests that PerrmissionsUtils.jsm works as expected, including:
-// * PermissionsUtils.importfromPrefs()
-//      <ROOT>.[whitelist|blacklist].add preferences are emptied when
-//       converted into permissions on startup.
-
-
-const PREF_ROOT = "testpermissions.";
-const TEST_PERM = "test-permission";
-
-Components.utils.import("resource://gre/modules/Services.jsm");
-Components.utils.import("resource://gre/modules/PermissionsUtils.jsm");
-
-function run_test() {
-  test_importfromPrefs();
-}
-
-
-function test_importfromPrefs() {
-  // Create own preferences to test
-  Services.prefs.setCharPref(PREF_ROOT + "whitelist.add.EMPTY", "");
-  Services.prefs.setCharPref(PREF_ROOT + "whitelist.add.EMPTY2", ",");
-  Services.prefs.setCharPref(PREF_ROOT + "whitelist.add.TEST", "http://whitelist.example.com");
-  Services.prefs.setCharPref(PREF_ROOT + "whitelist.add.TEST2", "https://whitelist2-1.example.com,http://whitelist2-2.example.com:8080,about:home");
-  Services.prefs.setCharPref(PREF_ROOT + "whitelist.add.TEST3", "whitelist3-1.example.com,about:config"); // legacy style - host only
-  Services.prefs.setCharPref(PREF_ROOT + "blacklist.add.EMPTY", "");
-  Services.prefs.setCharPref(PREF_ROOT + "blacklist.add.TEST", "http://blacklist.example.com,");
-  Services.prefs.setCharPref(PREF_ROOT + "blacklist.add.TEST2", ",https://blacklist2-1.example.com,http://blacklist2-2.example.com:8080,about:mozilla");
-  Services.prefs.setCharPref(PREF_ROOT + "blacklist.add.TEST3", "blacklist3-1.example.com,about:preferences"); // legacy style - host only
-
-  // Check they are unknown in the permission manager prior to importing.
-  let whitelisted = ["http://whitelist.example.com",
-                     "https://whitelist2-1.example.com",
-                     "http://whitelist2-2.example.com:8080",
-                     "http://whitelist3-1.example.com",
-                     "https://whitelist3-1.example.com",
-                     "about:config",
-                     "about:home"];
-  let blacklisted = ["http://blacklist.example.com",
-                     "https://blacklist2-1.example.com",
-                     "http://blacklist2-2.example.com:8080",
-                     "http://blacklist3-1.example.com",
-                     "https://blacklist3-1.example.com",
-                     "about:preferences",
-                     "about:mozilla"];
-  let untouched = ["https://whitelist.example.com",
-                   "https://blacklist.example.com",
-                   "http://whitelist2-1.example.com",
-                   "http://blacklist2-1.example.com",
-                   "https://whitelist2-2.example.com:8080",
-                   "https://blacklist2-2.example.com:8080"];
-  let unknown = whitelisted.concat(blacklisted).concat(untouched);
-  for (let url of unknown) {
-    let uri = Services.io.newURI(url, null, null);
-    do_check_eq(Services.perms.testPermission(uri, TEST_PERM), Services.perms.UNKNOWN_ACTION);
-  }
-
-  // Import them
-  PermissionsUtils.importFromPrefs(PREF_ROOT, TEST_PERM);
-
-  // Get list of preferences to check
-  let preferences = Services.prefs.getChildList(PREF_ROOT, {});
-
-  // Check preferences were emptied
-  for (let pref of preferences) {
-    do_check_eq(Services.prefs.getCharPref(pref), "");
-  }
-
-  // Check they were imported into the permissions manager
-  for (let url of whitelisted) {
-    let uri = Services.io.newURI(url, null, null);
-    do_check_eq(Services.perms.testPermission(uri, TEST_PERM), Services.perms.ALLOW_ACTION);
-  }
-  for (let url of blacklisted) {
-    let uri = Services.io.newURI(url, null, null);
-    do_check_eq(Services.perms.testPermission(uri, TEST_PERM), Services.perms.DENY_ACTION);
-  }
-  for (let url of untouched) {
-    let uri = Services.io.newURI(url, null, null);
-    do_check_eq(Services.perms.testPermission(uri, TEST_PERM), Services.perms.UNKNOWN_ACTION);
-  }
-}
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+// Tests that PerrmissionsUtils.jsm works as expected, including:
+// * PermissionsUtils.importfromPrefs()
+//      <ROOT>.[whitelist|blacklist].add preferences are emptied when
+//       converted into permissions on startup.
+
+
+const PREF_ROOT = "testpermissions.";
+const TEST_PERM = "test-permission";
+
+Components.utils.import("resource://gre/modules/Services.jsm");
+Components.utils.import("resource://gre/modules/PermissionsUtils.jsm");
+
+function run_test() {
+  test_importfromPrefs();
+}
+
+
+function test_importfromPrefs() {
+  // Create own preferences to test
+  Services.prefs.setCharPref(PREF_ROOT + "whitelist.add.EMPTY", "");
+  Services.prefs.setCharPref(PREF_ROOT + "whitelist.add.EMPTY2", ",");
+  Services.prefs.setCharPref(PREF_ROOT + "whitelist.add.TEST", "http://whitelist.example.com");
+  Services.prefs.setCharPref(PREF_ROOT + "whitelist.add.TEST2", "https://whitelist2-1.example.com,http://whitelist2-2.example.com:8080,about:home");
+  Services.prefs.setCharPref(PREF_ROOT + "whitelist.add.TEST3", "whitelist3-1.example.com,about:config"); // legacy style - host only
+  Services.prefs.setCharPref(PREF_ROOT + "blacklist.add.EMPTY", "");
+  Services.prefs.setCharPref(PREF_ROOT + "blacklist.add.TEST", "http://blacklist.example.com,");
+  Services.prefs.setCharPref(PREF_ROOT + "blacklist.add.TEST2", ",https://blacklist2-1.example.com,http://blacklist2-2.example.com:8080,about:mozilla");
+  Services.prefs.setCharPref(PREF_ROOT + "blacklist.add.TEST3", "blacklist3-1.example.com,about:preferences"); // legacy style - host only
+
+  // Check they are unknown in the permission manager prior to importing.
+  let whitelisted = ["http://whitelist.example.com",
+                     "https://whitelist2-1.example.com",
+                     "http://whitelist2-2.example.com:8080",
+                     "http://whitelist3-1.example.com",
+                     "https://whitelist3-1.example.com",
+                     "about:config",
+                     "about:home"];
+  let blacklisted = ["http://blacklist.example.com",
+                     "https://blacklist2-1.example.com",
+                     "http://blacklist2-2.example.com:8080",
+                     "http://blacklist3-1.example.com",
+                     "https://blacklist3-1.example.com",
+                     "about:preferences",
+                     "about:mozilla"];
+  let untouched = ["https://whitelist.example.com",
+                   "https://blacklist.example.com",
+                   "http://whitelist2-1.example.com",
+                   "http://blacklist2-1.example.com",
+                   "https://whitelist2-2.example.com:8080",
+                   "https://blacklist2-2.example.com:8080"];
+  let unknown = whitelisted.concat(blacklisted).concat(untouched);
+  for (let url of unknown) {
+    let uri = Services.io.newURI(url, null, null);
+    do_check_eq(Services.perms.testPermission(uri, TEST_PERM), Services.perms.UNKNOWN_ACTION);
+  }
+
+  // Import them
+  PermissionsUtils.importFromPrefs(PREF_ROOT, TEST_PERM);
+
+  // Get list of preferences to check
+  let preferences = Services.prefs.getChildList(PREF_ROOT, {});
+
+  // Check preferences were emptied
+  for (let pref of preferences) {
+    do_check_eq(Services.prefs.getCharPref(pref), "");
+  }
+
+  // Check they were imported into the permissions manager
+  for (let url of whitelisted) {
+    let uri = Services.io.newURI(url, null, null);
+    do_check_eq(Services.perms.testPermission(uri, TEST_PERM), Services.perms.ALLOW_ACTION);
+  }
+  for (let url of blacklisted) {
+    let uri = Services.io.newURI(url, null, null);
+    do_check_eq(Services.perms.testPermission(uri, TEST_PERM), Services.perms.DENY_ACTION);
+  }
+  for (let url of untouched) {
+    let uri = Services.io.newURI(url, null, null);
+    do_check_eq(Services.perms.testPermission(uri, TEST_PERM), Services.perms.UNKNOWN_ACTION);
+  }
+}
--- a/toolkit/mozapps/extensions/test/xpcshell/test_ChromeManifestParser.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_ChromeManifestParser.js
@@ -1,108 +1,108 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-// Tests ChromeManifestParser.js
-
-Components.utils.import("resource://gre/modules/ChromeManifestParser.jsm");
-
-
-function run_test() {
-  do_test_pending();
-  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "2", "2");
-
-  startupManager();
-
-  installAllFiles([do_get_addon("test_chromemanifest_1"),
-                   do_get_addon("test_chromemanifest_2"),
-                   do_get_addon("test_chromemanifest_3"),
-                   do_get_addon("test_chromemanifest_4")],
-                  function() {
-
-    restartManager();
-    run_test_1();
-  });
-}
-
-function run_test_1() {
-  AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
-                               "addon2@tests.mozilla.org",
-                               "addon3@tests.mozilla.org",
-                               "addon4@tests.mozilla.org"],
-                              function([a1, a2, a3, a4]) {
-    // addon1
-    let a1Uri = a1.getResourceURI("/").spec;
-    let expected = [
-      {type: "content", baseURI: a1Uri, args: ["test-addon-1", "chrome/content"]},
-      {type: "locale", baseURI: a1Uri, args: ["test-addon-1", "en-US", "locale/en-US"]},
-      {type: "locale", baseURI: a1Uri, args: ["test-addon-1", "fr-FR", "locale/fr-FR"]},
-      {type: "overlay", baseURI: a1Uri, args: ["chrome://browser/content/browser.xul", "chrome://test-addon-1/content/overlay.xul"]}
-    ];
-    let manifestURI = a1.getResourceURI("chrome.manifest");
-    let manifest = ChromeManifestParser.parseSync(manifestURI);
-
-    do_check_true(Array.isArray(manifest));
-    do_check_eq(manifest.length, expected.length);
-    for (let i = 0; i < manifest.length; i++) {
-      do_check_eq(JSON.stringify(manifest[i]), JSON.stringify(expected[i]));
-    }
-
-    // addon2
-    let a2Uri = a2.getResourceURI("/").spec;
-    expected = [
-      {type: "content", baseURI: a2Uri, args: ["test-addon-1", "chrome/content"]},
-      {type: "locale", baseURI: a2Uri, args: ["test-addon-1", "en-US", "locale/en-US"]},
-      {type: "locale", baseURI: a2Uri, args: ["test-addon-1", "fr-FR", "locale/fr-FR"]},
-      {type: "overlay", baseURI: a2Uri, args: ["chrome://browser/content/browser.xul", "chrome://test-addon-1/content/overlay.xul"]},
-      {type: "binary-component", baseURI: a2Uri, args: ["components/something.so"]}
-    ];
-    manifestURI = a2.getResourceURI("chrome.manifest");
-    manifest = ChromeManifestParser.parseSync(manifestURI);
-
-    do_check_true(Array.isArray(manifest));
-    do_check_eq(manifest.length, expected.length);
-    for (let i = 0; i < manifest.length; i++) {
-      do_check_eq(JSON.stringify(manifest[i]), JSON.stringify(expected[i]));
-    }
-
-    // addon3
-    let a3Uri = a3.getResourceURI("/").spec;
-    expected = [
-      {type: "content", baseURI: a3Uri, args: ["test-addon-1", "chrome/content"]},
-      {type: "locale", baseURI: a3Uri, args: ["test-addon-1", "en-US", "locale/en-US"]},
-      {type: "locale", baseURI: a3Uri, args: ["test-addon-1", "fr-FR", "locale/fr-FR"]},
-      {type: "overlay", baseURI: a3Uri, args: ["chrome://browser/content/browser.xul", "chrome://test-addon-1/content/overlay.xul"]},
-      {type: "binary-component", baseURI: a3Uri, args: ["components/something.so"]},
-      {type: "locale", baseURI: "jar:" + a3.getResourceURI("/inner.jar").spec + "!/", args: ["test-addon-1", "en-NZ", "locale/en-NZ"]},
-    ];
-    manifestURI = a3.getResourceURI("chrome.manifest");
-    manifest = ChromeManifestParser.parseSync(manifestURI);
-
-    do_check_true(Array.isArray(manifest));
-    do_check_eq(manifest.length, expected.length);
-    for (let i = 0; i < manifest.length; i++) {
-      do_check_eq(JSON.stringify(manifest[i]), JSON.stringify(expected[i]));
-    }
-
-    // addon4
-    let a4Uri = a4.getResourceURI("/").spec;
-    expected = [
-      {type: "content", baseURI: a4Uri, args: ["test-addon-1", "chrome/content"]},
-      {type: "locale", baseURI: a4Uri, args: ["test-addon-1", "en-US", "locale/en-US"]},
-      {type: "locale", baseURI: a4Uri, args: ["test-addon-1", "fr-FR", "locale/fr-FR"]},
-      {type: "overlay", baseURI: a4Uri, args: ["chrome://browser/content/browser.xul", "chrome://test-addon-1/content/overlay.xul"]},
-      {type: "binary-component", baseURI: a4.getResourceURI("components/").spec, args: ["mycomponent.dll"]},
-      {type: "binary-component", baseURI: a4.getResourceURI("components/other/").spec, args: ["thermalnuclearwar.dll"]}
-    ];
-    manifestURI = a4.getResourceURI("chrome.manifest");
-    manifest = ChromeManifestParser.parseSync(manifestURI);
-
-    do_check_true(Array.isArray(manifest));
-    do_check_eq(manifest.length, expected.length);
-    for (let i = 0; i < manifest.length; i++) {
-      do_check_eq(JSON.stringify(manifest[i]), JSON.stringify(expected[i]));
-    }
-
-    do_execute_soon(do_test_finished);
-  });
-}
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+// Tests ChromeManifestParser.js
+
+Components.utils.import("resource://gre/modules/ChromeManifestParser.jsm");
+
+
+function run_test() {
+  do_test_pending();
+  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "2", "2");
+
+  startupManager();
+
+  installAllFiles([do_get_addon("test_chromemanifest_1"),
+                   do_get_addon("test_chromemanifest_2"),
+                   do_get_addon("test_chromemanifest_3"),
+                   do_get_addon("test_chromemanifest_4")],
+                  function() {
+
+    restartManager();
+    run_test_1();
+  });
+}
+
+function run_test_1() {
+  AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
+                               "addon2@tests.mozilla.org",
+                               "addon3@tests.mozilla.org",
+                               "addon4@tests.mozilla.org"],
+                              function([a1, a2, a3, a4]) {
+    // addon1
+    let a1Uri = a1.getResourceURI("/").spec;
+    let expected = [
+      {type: "content", baseURI: a1Uri, args: ["test-addon-1", "chrome/content"]},
+      {type: "locale", baseURI: a1Uri, args: ["test-addon-1", "en-US", "locale/en-US"]},
+      {type: "locale", baseURI: a1Uri, args: ["test-addon-1", "fr-FR", "locale/fr-FR"]},
+      {type: "overlay", baseURI: a1Uri, args: ["chrome://browser/content/browser.xul", "chrome://test-addon-1/content/overlay.xul"]}
+    ];
+    let manifestURI = a1.getResourceURI("chrome.manifest");
+    let manifest = ChromeManifestParser.parseSync(manifestURI);
+
+    do_check_true(Array.isArray(manifest));
+    do_check_eq(manifest.length, expected.length);
+    for (let i = 0; i < manifest.length; i++) {
+      do_check_eq(JSON.stringify(manifest[i]), JSON.stringify(expected[i]));
+    }
+
+    // addon2
+    let a2Uri = a2.getResourceURI("/").spec;
+    expected = [
+      {type: "content", baseURI: a2Uri, args: ["test-addon-1", "chrome/content"]},
+      {type: "locale", baseURI: a2Uri, args: ["test-addon-1", "en-US", "locale/en-US"]},
+      {type: "locale", baseURI: a2Uri, args: ["test-addon-1", "fr-FR", "locale/fr-FR"]},
+      {type: "overlay", baseURI: a2Uri, args: ["chrome://browser/content/browser.xul", "chrome://test-addon-1/content/overlay.xul"]},
+      {type: "binary-component", baseURI: a2Uri, args: ["components/something.so"]}
+    ];
+    manifestURI = a2.getResourceURI("chrome.manifest");
+    manifest = ChromeManifestParser.parseSync(manifestURI);
+
+    do_check_true(Array.isArray(manifest));
+    do_check_eq(manifest.length, expected.length);
+    for (let i = 0; i < manifest.length; i++) {
+      do_check_eq(JSON.stringify(manifest[i]), JSON.stringify(expected[i]));
+    }
+
+    // addon3
+    let a3Uri = a3.getResourceURI("/").spec;
+    expected = [
+      {type: "content", baseURI: a3Uri, args: ["test-addon-1", "chrome/content"]},
+      {type: "locale", baseURI: a3Uri, args: ["test-addon-1", "en-US", "locale/en-US"]},
+      {type: "locale", baseURI: a3Uri, args: ["test-addon-1", "fr-FR", "locale/fr-FR"]},
+      {type: "overlay", baseURI: a3Uri, args: ["chrome://browser/content/browser.xul", "chrome://test-addon-1/content/overlay.xul"]},
+      {type: "binary-component", baseURI: a3Uri, args: ["components/something.so"]},
+      {type: "locale", baseURI: "jar:" + a3.getResourceURI("/inner.jar").spec + "!/", args: ["test-addon-1", "en-NZ", "locale/en-NZ"]},
+    ];
+    manifestURI = a3.getResourceURI("chrome.manifest");
+    manifest = ChromeManifestParser.parseSync(manifestURI);
+
+    do_check_true(Array.isArray(manifest));
+    do_check_eq(manifest.length, expected.length);
+    for (let i = 0; i < manifest.length; i++) {
+      do_check_eq(JSON.stringify(manifest[i]), JSON.stringify(expected[i]));
+    }
+
+    // addon4
+    let a4Uri = a4.getResourceURI("/").spec;
+    expected = [
+      {type: "content", baseURI: a4Uri, args: ["test-addon-1", "chrome/content"]},
+      {type: "locale", baseURI: a4Uri, args: ["test-addon-1", "en-US", "locale/en-US"]},
+      {type: "locale", baseURI: a4Uri, args: ["test-addon-1", "fr-FR", "locale/fr-FR"]},
+      {type: "overlay", baseURI: a4Uri, args: ["chrome://browser/content/browser.xul", "chrome://test-addon-1/content/overlay.xul"]},
+      {type: "binary-component", baseURI: a4.getResourceURI("components/").spec, args: ["mycomponent.dll"]},
+      {type: "binary-component", baseURI: a4.getResourceURI("components/other/").spec, args: ["thermalnuclearwar.dll"]}
+    ];
+    manifestURI = a4.getResourceURI("chrome.manifest");
+    manifest = ChromeManifestParser.parseSync(manifestURI);
+
+    do_check_true(Array.isArray(manifest));
+    do_check_eq(manifest.length, expected.length);
+    for (let i = 0; i < manifest.length; i++) {
+      do_check_eq(JSON.stringify(manifest[i]), JSON.stringify(expected[i]));
+    }
+
+    do_execute_soon(do_test_finished);
+  });
+}
--- a/toolkit/mozapps/extensions/test/xpcshell/test_blocklist_regexp.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_blocklist_regexp.js
@@ -1,114 +1,114 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-// Checks that blocklist entries using RegExp work as expected. This only covers
-// behavior specific to RegExp entries - general behavior is already tested
-// in test_blocklistchange.js.
-
-var {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
-
-const URI_EXTENSION_BLOCKLIST_DIALOG = "chrome://mozapps/content/extensions/blocklist.xul";
-
-Cu.import("resource://testing-common/httpd.js");
-Cu.import("resource://testing-common/MockRegistrar.jsm");
-var testserver = new HttpServer();
-testserver.start(-1);
-gPort = testserver.identity.primaryPort;
-
-// register static files with server and interpolate port numbers in them
-mapFile("/data/test_blocklist_regexp_1.xml", testserver);
-
-const profileDir = gProfD.clone();
-profileDir.append("extensions");
-
-// Don't need the full interface, attempts to call other methods will just
-// throw which is just fine
-var WindowWatcher = {
-  openWindow: function(parent, url, name, features, args) {
-    // Should be called to list the newly blocklisted items
-    do_check_eq(url, URI_EXTENSION_BLOCKLIST_DIALOG);
-
-    // Simulate auto-disabling any softblocks
-    var list = args.wrappedJSObject.list;
-    list.forEach(function(aItem) {
-      if (!aItem.blocked)
-        aItem.disable = true;
-    });
-
-    //run the code after the blocklist is closed
-    Services.obs.notifyObservers(null, "addon-blocklist-closed", null);
-
-  },
-
-  QueryInterface: function(iid) {
-    if (iid.equals(Ci.nsIWindowWatcher)
-     || iid.equals(Ci.nsISupports))
-      return this;
-
-    throw Cr.NS_ERROR_NO_INTERFACE;
-  }
-};
-
-MockRegistrar.register("@mozilla.org/embedcomp/window-watcher;1", WindowWatcher);
-
-
-function load_blocklist(aFile, aCallback) {
-  Services.obs.addObserver(function() {
-    Services.obs.removeObserver(arguments.callee, "blocklist-updated");
-
-    do_execute_soon(aCallback);
-  }, "blocklist-updated", false);
-
-  Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:" +
-                             gPort + "/data/" + aFile);
-  var blocklist = Cc["@mozilla.org/extensions/blocklist;1"].
-                  getService(Ci.nsITimerCallback);
-  blocklist.notify(null);
-}
-
-
-function end_test() {
-  testserver.stop(do_test_finished);
-}
-
-
-function run_test() {
-  do_test_pending();
-
-  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1");
-
-  writeInstallRDFForExtension({
-    id: "block1@tests.mozilla.org",
-    version: "1.0",
-    name: "RegExp blocked add-on",
-    targetApplications: [{
-      id: "xpcshell@tests.mozilla.org",
-      minVersion: "1",
-      maxVersion: "3"
-    }]
-  }, profileDir);
-
-  startupManager();
-
-  AddonManager.getAddonsByIDs(["block1@tests.mozilla.org"], function([a1]) {
-    do_check_eq(a1.blocklistState, Ci.nsIBlocklistService.STATE_NOT_BLOCKED);
-
-    run_test_1();
-  });
-}
-
-function run_test_1() {
-  load_blocklist("test_blocklist_regexp_1.xml", function() {
-    restartManager();
-
-    AddonManager.getAddonsByIDs(["block1@tests.mozilla.org"], function([a1]) {
-      // Blocklist contains two entries that will match this addon - ensure
-      // that the first one is applied.
-      do_check_neq(a1, null);
-      do_check_eq(a1.blocklistState, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
-
-      end_test();
-    });
-  });
-}
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+// Checks that blocklist entries using RegExp work as expected. This only covers
+// behavior specific to RegExp entries - general behavior is already tested
+// in test_blocklistchange.js.
+
+var {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
+
+const URI_EXTENSION_BLOCKLIST_DIALOG = "chrome://mozapps/content/extensions/blocklist.xul";
+
+Cu.import("resource://testing-common/httpd.js");
+Cu.import("resource://testing-common/MockRegistrar.jsm");
+var testserver = new HttpServer();
+testserver.start(-1);
+gPort = testserver.identity.primaryPort;
+
+// register static files with server and interpolate port numbers in them
+mapFile("/data/test_blocklist_regexp_1.xml", testserver);
+
+const profileDir = gProfD.clone();
+profileDir.append("extensions");
+
+// Don't need the full interface, attempts to call other methods will just
+// throw which is just fine
+var WindowWatcher = {
+  openWindow: function(parent, url, name, features, args) {
+    // Should be called to list the newly blocklisted items
+    do_check_eq(url, URI_EXTENSION_BLOCKLIST_DIALOG);
+
+    // Simulate auto-disabling any softblocks
+    var list = args.wrappedJSObject.list;
+    list.forEach(function(aItem) {
+      if (!aItem.blocked)
+        aItem.disable = true;
+    });
+
+    //run the code after the blocklist is closed
+    Services.obs.notifyObservers(null, "addon-blocklist-closed", null);
+
+  },
+
+  QueryInterface: function(iid) {
+    if (iid.equals(Ci.nsIWindowWatcher)
+     || iid.equals(Ci.nsISupports))
+      return this;
+
+    throw Cr.NS_ERROR_NO_INTERFACE;
+  }
+};
+
+MockRegistrar.register("@mozilla.org/embedcomp/window-watcher;1", WindowWatcher);
+
+
+function load_blocklist(aFile, aCallback) {
+  Services.obs.addObserver(function() {
+    Services.obs.removeObserver(arguments.callee, "blocklist-updated");
+
+    do_execute_soon(aCallback);
+  }, "blocklist-updated", false);
+
+  Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:" +
+                             gPort + "/data/" + aFile);
+  var blocklist = Cc["@mozilla.org/extensions/blocklist;1"].
+                  getService(Ci.nsITimerCallback);
+  blocklist.notify(null);
+}
+
+
+function end_test() {
+  testserver.stop(do_test_finished);
+}
+
+
+function run_test() {
+  do_test_pending();
+
+  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1");
+
+  writeInstallRDFForExtension({
+    id: "block1@tests.mozilla.org",
+    version: "1.0",
+    name: "RegExp blocked add-on",
+    targetApplications: [{
+      id: "xpcshell@tests.mozilla.org",
+      minVersion: "1",
+      maxVersion: "3"
+    }]
+  }, profileDir);
+
+  startupManager();
+
+  AddonManager.getAddonsByIDs(["block1@tests.mozilla.org"], function([a1]) {
+    do_check_eq(a1.blocklistState, Ci.nsIBlocklistService.STATE_NOT_BLOCKED);
+
+    run_test_1();
+  });
+}
+
+function run_test_1() {
+  load_blocklist("test_blocklist_regexp_1.xml", function() {
+    restartManager();
+
+    AddonManager.getAddonsByIDs(["block1@tests.mozilla.org"], function([a1]) {
+      // Blocklist contains two entries that will match this addon - ensure
+      // that the first one is applied.
+      do_check_neq(a1, null);
+      do_check_eq(a1.blocklistState, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
+
+      end_test();
+    });
+  });
+}
--- a/toolkit/mozapps/extensions/test/xpcshell/test_bug1180901.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_bug1180901.js
@@ -1,35 +1,35 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-function run_test() {
-  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
-  startupManager();
-  run_next_test();
-}
-
-add_task(function* () {
-  let profileDir = OS.Constants.Path.profileDir;
-  let trashDir = OS.Path.join(profileDir, "extensions", "trash");
-  let testFile = OS.Path.join(trashDir, "test.txt");
-
-  yield OS.File.makeDir(trashDir, {
-    from: profileDir,
-    ignoreExisting: true
-  });
-
-  let trashDirExists = yield OS.File.exists(trashDir);
-  ok(trashDirExists, "trash directory should have been created");
-
-  let file = yield OS.File.open(testFile, {create: true}, {winShare: 0});
-  let fileExists = yield OS.File.exists(testFile);
-  ok(fileExists, "test.txt should have been created in " + trashDir);
-
-  yield promiseInstallAllFiles([do_get_addon("test_install1")]);
-  yield promiseRestartManager();
-  fileExists = yield OS.File.exists(testFile);
-  ok(fileExists, "test.txt still exists");
-  yield file.close();
-  yield OS.File.removeDir(OS.Path.join(OS.Constants.Path.profileDir, "extensions"));
-  yield promiseShutdownManager();
-});
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+function run_test() {
+  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
+  startupManager();
+  run_next_test();
+}
+
+add_task(function* () {
+  let profileDir = OS.Constants.Path.profileDir;
+  let trashDir = OS.Path.join(profileDir, "extensions", "trash");
+  let testFile = OS.Path.join(trashDir, "test.txt");
+
+  yield OS.File.makeDir(trashDir, {
+    from: profileDir,
+    ignoreExisting: true
+  });
+
+  let trashDirExists = yield OS.File.exists(trashDir);
+  ok(trashDirExists, "trash directory should have been created");
+
+  let file = yield OS.File.open(testFile, {create: true}, {winShare: 0});
+  let fileExists = yield OS.File.exists(testFile);
+  ok(fileExists, "test.txt should have been created in " + trashDir);
+
+  yield promiseInstallAllFiles([do_get_addon("test_install1")]);
+  yield promiseRestartManager();
+  fileExists = yield OS.File.exists(testFile);
+  ok(fileExists, "test.txt still exists");
+  yield file.close();
+  yield OS.File.removeDir(OS.Path.join(OS.Constants.Path.profileDir, "extensions"));
+  yield promiseShutdownManager();
+});
--- a/toolkit/mozapps/extensions/test/xpcshell/test_bug1180901_2.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_bug1180901_2.js
@@ -1,60 +1,60 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-function run_test() {
-  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
-  startupManager();
-  run_next_test();
-}
-
-add_task(function* () {
-  let profileDir = OS.Constants.Path.profileDir;
-  let trashDir = OS.Path.join(profileDir, "extensions", "trash");
-  let testFile = OS.Path.join(trashDir, "test.txt");
-
-  yield OS.File.makeDir(trashDir, {
-    from: profileDir,
-    ignoreExisting: true
-  });
-
-  let trashDirExists = yield OS.File.exists(trashDir);
-  ok(trashDirExists, "trash directory should have been created");
-
-  let file = yield OS.File.open(testFile, {create: true}, {winShare: 0});
-  let fileExists = yield OS.File.exists(testFile);
-  ok(fileExists, "test.txt should have been created in " + trashDir);
-
-  let promiseInstallStatus = new Promise((resolve, reject) => {
-    let listener = {
-      onInstallFailed: function() {
-        AddonManager.removeInstallListener(listener);
-        reject("extension installation should not have failed");
-      },
-      onInstallEnded: function() {
-        AddonManager.removeInstallListener(listener);
-        ok(true, "extension installation should not have failed");
-        resolve();
-      }
-    };
-
-    AddonManager.addInstallListener(listener);
-  });
-
-  yield promiseInstallAllFiles([do_get_addon("test_bootstrap1_1")]);
-
-  // The testFile should still exist at this point because we have not
-  // yet closed the file handle and as a result, Windows cannot remove it.
-  fileExists = yield OS.File.exists(testFile);
-  ok(fileExists, "test.txt should still exist");
-
-  // Wait for the AddonManager to tell us if the installation of the extension
-  // succeeded or not.
-  yield promiseInstallStatus;
-
-  // Cleanup
-  yield promiseShutdownManager();
-  yield file.close();
-  yield OS.File.remove(testFile);
-  yield OS.File.removeDir(trashDir);
-});
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+function run_test() {
+  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
+  startupManager();
+  run_next_test();
+}
+
+add_task(function* () {
+  let profileDir = OS.Constants.Path.profileDir;
+  let trashDir = OS.Path.join(profileDir, "extensions", "trash");
+  let testFile = OS.Path.join(trashDir, "test.txt");
+
+  yield OS.File.makeDir(trashDir, {
+    from: profileDir,
+    ignoreExisting: true
+  });
+
+  let trashDirExists = yield OS.File.exists(trashDir);
+  ok(trashDirExists, "trash directory should have been created");
+
+  let file = yield OS.File.open(testFile, {create: true}, {winShare: 0});
+  let fileExists = yield OS.File.exists(testFile);
+  ok(fileExists, "test.txt should have been created in " + trashDir);
+
+  let promiseInstallStatus = new Promise((resolve, reject) => {
+    let listener = {
+      onInstallFailed: function() {
+        AddonManager.removeInstallListener(listener);
+        reject("extension installation should not have failed");
+      },
+      onInstallEnded: function() {
+        AddonManager.removeInstallListener(listener);
+        ok(true, "extension installation should not have failed");
+        resolve();
+      }
+    };
+
+    AddonManager.addInstallListener(listener);
+  });
+
+  yield promiseInstallAllFiles([do_get_addon("test_bootstrap1_1")]);
+
+  // The testFile should still exist at this point because we have not
+  // yet closed the file handle and as a result, Windows cannot remove it.
+  fileExists = yield OS.File.exists(testFile);
+  ok(fileExists, "test.txt should still exist");
+
+  // Wait for the AddonManager to tell us if the installation of the extension
+  // succeeded or not.
+  yield promiseInstallStatus;
+
+  // Cleanup
+  yield promiseShutdownManager();
+  yield file.close();
+  yield OS.File.remove(testFile);
+  yield OS.File.removeDir(trashDir);
+});
--- a/toolkit/mozapps/extensions/test/xpcshell/test_bug757663.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_bug757663.js
@@ -1,112 +1,112 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-// This test verifies that removing a listener during a callback for that type
-// of listener still results in all listeners being called.
-
-var addon1 = {
-  id: "addon1@tests.mozilla.org",
-  version: "2.0",
-  name: "Test 1",
-  bootstrap: "true",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "1",
-    maxVersion: "1"
-  }]
-};
-
-var listener1 = {
-  sawEvent: false,
-  onDisabling: function() {
-    this.sawEvent = true;
-    AddonManager.removeAddonListener(this);
-  },
-  onNewInstall: function() {
-    this.sawEvent = true;
-    AddonManager.removeInstallListener(this);
-  }
-};
-var listener2 = {
-  sawEvent: false,
-  onDisabling: function() {
-    this.sawEvent = true;
-  },
-  onNewInstall: function() {
-    this.sawEvent = true;
-  }
-};
-var listener3 = {
-  sawEvent: false,
-  onDisabling: function() {
-    this.sawEvent = true;
-  },
-  onNewInstall: function() {
-    this.sawEvent = true;
-  }
-};
-
-const profileDir = gProfD.clone();
-profileDir.append("extensions");
-
-
-function run_test() {
-  do_test_pending();
-  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
-
-  writeInstallRDFForExtension(addon1, profileDir);
-  startupManager();
-
-  run_test_1();
-}
-
-function run_test_1() {
-  AddonManager.addAddonListener(listener1);
-  AddonManager.addAddonListener(listener2);
-  AddonManager.addAddonListener(listener3);
-
-  AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org"], function([a1]) {
-    do_check_neq(a1, null);
-    do_check_false(a1.userDisabled);
-    do_check_true(a1.isActive);
-
-    a1.userDisabled = true;
-
-    do_check_true(listener1.sawEvent);
-    listener1.sawEvent = false;
-    do_check_true(listener2.sawEvent);
-    listener2.sawEvent = false;
-    do_check_true(listener3.sawEvent);
-    listener3.sawEvent = false;
-
-    AddonManager.removeAddonListener(listener1);
-    AddonManager.removeAddonListener(listener2);
-    AddonManager.removeAddonListener(listener3);
-
-    a1.uninstall();
-    run_test_2();
-  });
-}
-
-function run_test_2() {
-  AddonManager.addInstallListener(listener1);
-  AddonManager.addInstallListener(listener2);
-  AddonManager.addInstallListener(listener3);
-
-  AddonManager.getInstallForFile(do_get_addon("test_bug757663"), function(aInstall) {
-
-    do_check_true(listener1.sawEvent);
-    listener1.sawEvent = false;
-    do_check_true(listener2.sawEvent);
-    listener2.sawEvent = false;
-    do_check_true(listener3.sawEvent);
-    listener3.sawEvent = false;
-
-    AddonManager.removeInstallListener(listener1);
-    AddonManager.removeInstallListener(listener2);
-    AddonManager.removeInstallListener(listener3);
-
-    do_execute_soon(do_test_finished);
-  });
-}
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+// This test verifies that removing a listener during a callback for that type
+// of listener still results in all listeners being called.
+
+var addon1 = {
+  id: "addon1@tests.mozilla.org",
+  version: "2.0",
+  name: "Test 1",
+  bootstrap: "true",
+  targetApplications: [{
+    id: "xpcshell@tests.mozilla.org",
+    minVersion: "1",
+    maxVersion: "1"
+  }]
+};
+
+var listener1 = {
+  sawEvent: false,
+  onDisabling: function() {
+    this.sawEvent = true;
+    AddonManager.removeAddonListener(this);
+  },
+  onNewInstall: function() {
+    this.sawEvent = true;
+    AddonManager.removeInstallListener(this);
+  }
+};
+var listener2 = {
+  sawEvent: false,
+  onDisabling: function() {
+    this.sawEvent = true;
+  },
+  onNewInstall: function() {
+    this.sawEvent = true;
+  }
+};
+var listener3 = {
+  sawEvent: false,
+  onDisabling: function() {
+    this.sawEvent = true;
+  },
+  onNewInstall: function() {
+    this.sawEvent = true;
+  }
+};
+
+const profileDir = gProfD.clone();
+profileDir.append("extensions");
+
+
+function run_test() {
+  do_test_pending();
+  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
+
+  writeInstallRDFForExtension(addon1, profileDir);
+  startupManager();
+
+  run_test_1();
+}
+
+function run_test_1() {
+  AddonManager.addAddonListener(listener1);
+  AddonManager.addAddonListener(listener2);
+  AddonManager.addAddonListener(listener3);
+
+  AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org"], function([a1]) {
+    do_check_neq(a1, null);
+    do_check_false(a1.userDisabled);
+    do_check_true(a1.isActive);
+
+    a1.userDisabled = true;
+
+    do_check_true(listener1.sawEvent);
+    listener1.sawEvent = false;
+    do_check_true(listener2.sawEvent);
+    listener2.sawEvent = false;
+    do_check_true(listener3.sawEvent);
+    listener3.sawEvent = false;
+
+    AddonManager.removeAddonListener(listener1);
+    AddonManager.removeAddonListener(listener2);
+    AddonManager.removeAddonListener(listener3);
+
+    a1.uninstall();
+    run_test_2();
+  });
+}
+
+function run_test_2() {
+  AddonManager.addInstallListener(listener1);
+  AddonManager.addInstallListener(listener2);
+  AddonManager.addInstallListener(listener3);
+
+  AddonManager.getInstallForFile(do_get_addon("test_bug757663"), function(aInstall) {
+
+    do_check_true(listener1.sawEvent);
+    listener1.sawEvent = false;
+    do_check_true(listener2.sawEvent);
+    listener2.sawEvent = false;
+    do_check_true(listener3.sawEvent);
+    listener3.sawEvent = false;
+
+    AddonManager.removeInstallListener(listener1);
+    AddonManager.removeInstallListener(listener2);
+    AddonManager.removeInstallListener(listener3);
+
+    do_execute_soon(do_test_finished);
+  });
+}
--- a/toolkit/mozapps/extensions/test/xpcshell/test_checkCompatibility_themeOverride.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_checkCompatibility_themeOverride.js
@@ -1,93 +1,93 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-// This verifies that the (temporary)
-// extensions.checkCompatibility.temporaryThemeOverride_minAppVersion
-// preference works.
-
-var ADDONS = [{
-  id: "addon1@tests.mozilla.org",
-  type: 4,
-  internalName: "theme1/1.0",
-  version: "1.0",
-  name: "Test 1",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "1.0",
-    maxVersion: "1.0"
-  }]
-}, {
-  id: "addon2@tests.mozilla.org",
-  type: 4,
-  internalName: "theme2/1.0",
-  version: "1.0",
-  name: "Test 2",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "2.0",
-    maxVersion: "2.0"
-  }]
-}];
-
-const profileDir = gProfD.clone();
-profileDir.append("extensions");
-
-
-function run_test() {
-  do_test_pending();
-  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "3.0", "1");
-
-  for (let a of ADDONS) {
-    writeInstallRDFForExtension(a, profileDir);
-  }
-
-  startupManager();
-
-  run_test_1();
-}
-
-function run_test_1() {
-  AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
-                               "addon2@tests.mozilla.org"],
-                               function([a1, a2]) {
-
-    do_check_neq(a1, null);
-    do_check_false(a1.isActive);
-    do_check_false(a1.isCompatible);
-    do_check_true(a1.appDisabled);
-
-    do_check_neq(a2, null);
-    do_check_false(a2.isActive);
-    do_check_false(a2.isCompatible);
-    do_check_true(a1.appDisabled);
-
-    do_execute_soon(run_test_2);
-  });
-}
-
-function run_test_2() {
-  Services.prefs.setCharPref("extensions.checkCompatibility.temporaryThemeOverride_minAppVersion", "2.0");
-  if (isNightlyChannel())
-    Services.prefs.setBoolPref("extensions.checkCompatibility.nightly", false);
-  else
-    Services.prefs.setBoolPref("extensions.checkCompatibility.3.0", false);
-  restartManager();
-
-  AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
-                               "addon2@tests.mozilla.org"],
-                               function([a1, a2]) {
-
-    do_check_neq(a1, null);
-    do_check_false(a1.isActive);
-    do_check_false(a1.isCompatible);
-    do_check_true(a1.appDisabled);
-
-    do_check_neq(a2, null);
-    do_check_false(a2.isActive);
-    do_check_false(a2.isCompatible);
-    do_check_false(a2.appDisabled);
-
-    do_execute_soon(do_test_finished);
-  });
-}
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+// This verifies that the (temporary)
+// extensions.checkCompatibility.temporaryThemeOverride_minAppVersion
+// preference works.
+
+var ADDONS = [{
+  id: "addon1@tests.mozilla.org",
+  type: 4,
+  internalName: "theme1/1.0",
+  version: "1.0",
+  name: "Test 1",
+  targetApplications: [{
+    id: "xpcshell@tests.mozilla.org",
+    minVersion: "1.0",
+    maxVersion: "1.0"
+  }]
+}, {
+  id: "addon2@tests.mozilla.org",
+  type: 4,
+  internalName: "theme2/1.0",
+  version: "1.0",
+  name: "Test 2",
+  targetApplications: [{
+    id: "xpcshell@tests.mozilla.org",
+    minVersion: "2.0",
+    maxVersion: "2.0"
+  }]
+}];
+
+const profileDir = gProfD.clone();
+profileDir.append("extensions");
+
+
+function run_test() {
+  do_test_pending();
+  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "3.0", "1");
+
+  for (let a of ADDONS) {
+    writeInstallRDFForExtension(a, profileDir);
+  }
+
+  startupManager();
+
+  run_test_1();
+}
+
+function run_test_1() {
+  AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
+                               "addon2@tests.mozilla.org"],
+                               function([a1, a2]) {
+
+    do_check_neq(a1, null);
+    do_check_false(a1.isActive);
+    do_check_false(a1.isCompatible);
+    do_check_true(a1.appDisabled);
+
+    do_check_neq(a2, null);
+    do_check_false(a2.isActive);
+    do_check_false(a2.isCompatible);
+    do_check_true(a1.appDisabled);
+
+    do_execute_soon(run_test_2);
+  });
+}
+
+function run_test_2() {
+  Services.prefs.setCharPref("extensions.checkCompatibility.temporaryThemeOverride_minAppVersion", "2.0");
+  if (isNightlyChannel())
+    Services.prefs.setBoolPref("extensions.checkCompatibility.nightly", false);
+  else
+    Services.prefs.setBoolPref("extensions.checkCompatibility.3.0", false);
+  restartManager();
+
+  AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
+                               "addon2@tests.mozilla.org"],
+                               function([a1, a2]) {
+
+    do_check_neq(a1, null);
+    do_check_false(a1.isActive);
+    do_check_false(a1.isCompatible);
+    do_check_true(a1.appDisabled);
+
+    do_check_neq(a2, null);
+    do_check_false(a2.isActive);
+    do_check_false(a2.isCompatible);
+    do_check_false(a2.appDisabled);
+
+    do_execute_soon(do_test_finished);
+  });
+}
--- a/toolkit/mozapps/extensions/test/xpcshell/test_migrate5.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_migrate5.js
@@ -1,139 +1,139 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-// Checks that we fail to migrate but still start up ok when there is a SQLITE database
-// with no useful data in it.
-
-const PREF_GENERAL_SKINS_SELECTEDSKIN = "general.skins.selectedSkin";
-
-var addon1 = {
-  id: "addon1@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 1",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "1",
-    maxVersion: "1"
-  }]
-};
-
-var addon2 = {
-  id: "addon2@tests.mozilla.org",
-  version: "2.0",
-  name: "Test 5",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "0",
-    maxVersion: "0"
-  }]
-};
-
-var defaultTheme = {
-  id: "default@tests.mozilla.org",
-  version: "2.0",
-  name: "Default theme",
-  internalName: "classic/1.0",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "1",
-    maxVersion: "1"
-  }]
-};
-
-var theme1 = {
-  id: "theme1@tests.mozilla.org",
-  version: "2.0",
-  name: "Test theme",
-  internalName: "theme1/1.0",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "1",
-    maxVersion: "1"
-  }]
-};
-
-const profileDir = gProfD.clone();
-profileDir.append("extensions");
-
-function run_test() {
-  do_test_pending();
-  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
-
-  writeInstallRDFForExtension(addon1, profileDir);
-  writeInstallRDFForExtension(addon2, profileDir);
-  writeInstallRDFForExtension(defaultTheme, profileDir);
-  writeInstallRDFForExtension(theme1, profileDir);
-
-  Services.prefs.setCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN, "theme1/1.0");
-
-  // Write out a broken database (no userDisabled field)
-  let dbfile = gProfD.clone();
-  dbfile.append("extensions.sqlite");
-  let db = AM_Cc["@mozilla.org/storage/service;1"].
-           getService(AM_Ci.mozIStorageService).
-           openDatabase(dbfile);
-  db.createTable("addon", "internal_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
-                          "id TEXT, location TEXT, version TEXT, active INTEGER, " +
-                          "installDate INTEGER");
-  db.createTable("targetApplication", "addon_internal_id INTEGER, " +
-                                      "id TEXT, minVersion TEXT, maxVersion TEXT");
-  let stmt = db.createStatement("INSERT INTO addon VALUES (NULL, :id, :location, " +
-                                ":version, :active, :installDate)");
-
-  let internal_ids = {};
-
-  [["addon1@tests.mozilla.org", "app-profile", "1.0", "1", "0"],
-   ["addon2@tests.mozilla.org", "app-profile", "2.0", "0", "0"],
-   ["default@tests.mozilla.org", "app-profile", "2.0", "1", "0"],
-   ["theme1@tests.mozilla.org", "app-profile", "2.0", "0", "0"]].forEach(function(a) {
-    stmt.params.id = a[0];
-    stmt.params.location = a[1];
-    stmt.params.version = a[2];
-    stmt.params.active = a[3];
-    stmt.params.installDate = a[4];
-    stmt.execute();
-    internal_ids[a[0]] = db.lastInsertRowID;
-  });
-  stmt.finalize();
-
-  db.schemaVersion = 100;
-  Services.prefs.setIntPref("extensions.databaseSchema", 100);
-  db.close();
-
-  startupManager();
-  check_startup_changes("installed", []);
-  check_startup_changes("updated", []);
-  check_startup_changes("uninstalled", []);
-  check_startup_changes("disabled", []);
-  check_startup_changes("enabled", []);
-
-  AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
-                               "addon2@tests.mozilla.org",
-                               "default@tests.mozilla.org",
-                               "theme1@tests.mozilla.org"],
-                               function([a1, a2, d, t1]) {
-    do_check_neq(a1, null);
-    do_check_false(a1.userDisabled);
-    do_check_false(a1.appDisabled);
-    do_check_true(a1.isActive);
-
-    do_check_neq(a2, null);
-    do_check_false(a2.userDisabled);
-    do_check_true(a2.appDisabled);
-    do_check_false(a2.isActive);
-
-    // Should have enabled the selected theme
-    do_check_neq(t1, null);
-    do_check_false(t1.userDisabled);
-    do_check_false(t1.appDisabled);
-    do_check_true(t1.isActive);
-
-    do_check_neq(d, null);
-    do_check_true(d.userDisabled);
-    do_check_false(d.appDisabled);
-    do_check_false(d.isActive);
-
-    do_execute_soon(do_test_finished);
-  });
-}
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+// Checks that we fail to migrate but still start up ok when there is a SQLITE database
+// with no useful data in it.
+
+const PREF_GENERAL_SKINS_SELECTEDSKIN = "general.skins.selectedSkin";
+
+var addon1 = {
+  id: "addon1@tests.mozilla.org",
+  version: "1.0",
+  name: "Test 1",
+  targetApplications: [{
+    id: "xpcshell@tests.mozilla.org",
+    minVersion: "1",
+    maxVersion: "1"
+  }]
+};
+
+var addon2 = {
+  id: "addon2@tests.mozilla.org",
+  version: "2.0",
+  name: "Test 5",
+  targetApplications: [{
+    id: "xpcshell@tests.mozilla.org",
+    minVersion: "0",
+    maxVersion: "0"
+  }]
+};
+
+var defaultTheme = {
+  id: "default@tests.mozilla.org",
+  version: "2.0",
+  name: "Default theme",
+  internalName: "classic/1.0",
+  targetApplications: [{
+    id: "xpcshell@tests.mozilla.org",
+    minVersion: "1",
+    maxVersion: "1"
+  }]
+};
+
+var theme1 = {
+  id: "theme1@tests.mozilla.org",
+  version: "2.0",
+  name: "Test theme",
+  internalName: "theme1/1.0",
+  targetApplications: [{
+    id: "xpcshell@tests.mozilla.org",
+    minVersion: "1",
+    maxVersion: "1"
+  }]
+};
+
+const profileDir = gProfD.clone();
+profileDir.append("extensions");
+
+function run_test() {
+  do_test_pending();
+  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
+
+  writeInstallRDFForExtension(addon1, profileDir);
+  writeInstallRDFForExtension(addon2, profileDir);
+  writeInstallRDFForExtension(defaultTheme, profileDir);
+  writeInstallRDFForExtension(theme1, profileDir);
+
+  Services.prefs.setCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN, "theme1/1.0");
+
+  // Write out a broken database (no userDisabled field)
+  let dbfile = gProfD.clone();
+  dbfile.append("extensions.sqlite");
+  let db = AM_Cc["@mozilla.org/storage/service;1"].
+           getService(AM_Ci.mozIStorageService).
+           openDatabase(dbfile);
+  db.createTable("addon", "internal_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
+                          "id TEXT, location TEXT, version TEXT, active INTEGER, " +
+                          "installDate INTEGER");
+  db.createTable("targetApplication", "addon_internal_id INTEGER, " +
+                                      "id TEXT, minVersion TEXT, maxVersion TEXT");
+  let stmt = db.createStatement("INSERT INTO addon VALUES (NULL, :id, :location, " +
+                                ":version, :active, :installDate)");
+
+  let internal_ids = {};
+
+  [["addon1@tests.mozilla.org", "app-profile", "1.0", "1", "0"],
+   ["addon2@tests.mozilla.org", "app-profile", "2.0", "0", "0"],
+   ["default@tests.mozilla.org", "app-profile", "2.0", "1", "0"],
+   ["theme1@tests.mozilla.org", "app-profile", "2.0", "0", "0"]].forEach(function(a) {
+    stmt.params.id = a[0];
+    stmt.params.location = a[1];
+    stmt.params.version = a[2];
+    stmt.params.active = a[3];
+    stmt.params.installDate = a[4];
+    stmt.execute();
+    internal_ids[a[0]] = db.lastInsertRowID;
+  });
+  stmt.finalize();
+
+  db.schemaVersion = 100;
+  Services.prefs.setIntPref("extensions.databaseSchema", 100);
+  db.close();
+
+  startupManager();
+  check_startup_changes("installed", []);
+  check_startup_changes("updated", []);
+  check_startup_changes("uninstalled", []);
+  check_startup_changes("disabled", []);
+  check_startup_changes("enabled", []);
+
+  AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
+                               "addon2@tests.mozilla.org",
+                               "default@tests.mozilla.org",
+                               "theme1@tests.mozilla.org"],
+                               function([a1, a2, d, t1]) {
+    do_check_neq(a1, null);
+    do_check_false(a1.userDisabled);
+    do_check_false(a1.appDisabled);
+    do_check_true(a1.isActive);
+
+    do_check_neq(a2, null);
+    do_check_false(a2.userDisabled);
+    do_check_true(a2.appDisabled);
+    do_check_false(a2.isActive);
+
+    // Should have enabled the selected theme
+    do_check_neq(t1, null);
+    do_check_false(t1.userDisabled);
+    do_check_false(t1.appDisabled);
+    do_check_true(t1.isActive);
+
+    do_check_neq(d, null);
+    do_check_true(d.userDisabled);
+    do_check_false(d.appDisabled);
+    do_check_false(d.isActive);
+
+    do_execute_soon(do_test_finished);
+  });
+}
--- a/toolkit/mozapps/extensions/test/xpcshell/test_permissions.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_permissions.js
@@ -1,86 +1,86 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-Components.utils.import("resource://gre/modules/NetUtil.jsm");
-
-// Checks that permissions set in preferences are correctly imported but can
-// be removed by the user.
-
-const XPI_MIMETYPE = "application/x-xpinstall";
-
-function newPrincipal(uri) {
-  return Services.scriptSecurityManager.createCodebasePrincipal(NetUtil.newURI(uri), {});
-}
-
-function run_test() {
-  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "2", "2");
-
-  Services.prefs.setCharPref("xpinstall.whitelist.add", "https://test1.com,https://test2.com");
-  Services.prefs.setCharPref("xpinstall.whitelist.add.36", "https://test3.com,https://www.test4.com");
-  Services.prefs.setCharPref("xpinstall.whitelist.add.test5", "https://test5.com");
-
-  Services.perms.add(NetUtil.newURI("https://www.test9.com"), "install",
-                     AM_Ci.nsIPermissionManager.ALLOW_ACTION);
-
-  startupManager();
-
-  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                               newPrincipal("http://test1.com")));
-  do_check_true(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                              newPrincipal("https://test1.com")));
-  do_check_true(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                              newPrincipal("https://www.test2.com")));
-  do_check_true(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                              newPrincipal("https://test3.com")));
-  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                               newPrincipal("https://test4.com")));
-  do_check_true(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                              newPrincipal("https://www.test4.com")));
-  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                               newPrincipal("http://www.test5.com")));
-  do_check_true(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                              newPrincipal("https://www.test5.com")));
-
-  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                               newPrincipal("http://www.test6.com")));
-  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                               newPrincipal("https://www.test6.com")));
-  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                               newPrincipal("https://test7.com")));
-  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                               newPrincipal("https://www.test8.com")));
-
-  // This should remain unaffected
-  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                               newPrincipal("http://www.test9.com")));
-  do_check_true(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                              newPrincipal("https://www.test9.com")));
-
-  Services.perms.removeAll();
-
-  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                               newPrincipal("https://test1.com")));
-  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                               newPrincipal("https://www.test2.com")));
-  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                               newPrincipal("https://test3.com")));
-  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                               newPrincipal("https://www.test4.com")));
-  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                               newPrincipal("https://www.test5.com")));
-
-  // Upgrade the application and verify that the permissions are still not there
-  restartManager("2");
-
-  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                               newPrincipal("https://test1.com")));
-  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                               newPrincipal("https://www.test2.com")));
-  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                               newPrincipal("https://test3.com")));
-  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                               newPrincipal("https://www.test4.com")));
-  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
-                                               newPrincipal("https://www.test5.com")));
-}
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+Components.utils.import("resource://gre/modules/NetUtil.jsm");
+
+// Checks that permissions set in preferences are correctly imported but can
+// be removed by the user.
+
+const XPI_MIMETYPE = "application/x-xpinstall";
+
+function newPrincipal(uri) {
+  return Services.scriptSecurityManager.createCodebasePrincipal(NetUtil.newURI(uri), {});
+}
+
+function run_test() {
+  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "2", "2");
+
+  Services.prefs.setCharPref("xpinstall.whitelist.add", "https://test1.com,https://test2.com");
+  Services.prefs.setCharPref("xpinstall.whitelist.add.36", "https://test3.com,https://www.test4.com");
+  Services.prefs.setCharPref("xpinstall.whitelist.add.test5", "https://test5.com");
+
+  Services.perms.add(NetUtil.newURI("https://www.test9.com"), "install",
+                     AM_Ci.nsIPermissionManager.ALLOW_ACTION);
+
+  startupManager();
+
+  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                               newPrincipal("http://test1.com")));
+  do_check_true(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                              newPrincipal("https://test1.com")));
+  do_check_true(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                              newPrincipal("https://www.test2.com")));
+  do_check_true(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                              newPrincipal("https://test3.com")));
+  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                               newPrincipal("https://test4.com")));
+  do_check_true(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                              newPrincipal("https://www.test4.com")));
+  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                               newPrincipal("http://www.test5.com")));
+  do_check_true(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                              newPrincipal("https://www.test5.com")));
+
+  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                               newPrincipal("http://www.test6.com")));
+  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                               newPrincipal("https://www.test6.com")));
+  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                               newPrincipal("https://test7.com")));
+  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                               newPrincipal("https://www.test8.com")));
+
+  // This should remain unaffected
+  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                               newPrincipal("http://www.test9.com")));
+  do_check_true(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                              newPrincipal("https://www.test9.com")));
+
+  Services.perms.removeAll();
+
+  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                               newPrincipal("https://test1.com")));
+  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                               newPrincipal("https://www.test2.com")));
+  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                               newPrincipal("https://test3.com")));
+  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                               newPrincipal("https://www.test4.com")));
+  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                               newPrincipal("https://www.test5.com")));
+
+  // Upgrade the application and verify that the permissions are still not there
+  restartManager("2");
+
+  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                               newPrincipal("https://test1.com")));
+  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                               newPrincipal("https://www.test2.com")));
+  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                               newPrincipal("https://test3.com")));
+  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                               newPrincipal("https://www.test4.com")));
+  do_check_false(AddonManager.isInstallAllowed(XPI_MIMETYPE,
+                                               newPrincipal("https://www.test5.com")));
+}
--- a/toolkit/mozapps/extensions/test/xpcshell/test_permissions_prefs.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_permissions_prefs.js
@@ -1,74 +1,74 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-// Tests that xpinstall.[whitelist|blacklist].add preferences are emptied when
-// converted into permissions.
-
-const PREF_XPI_WHITELIST_PERMISSIONS  = "xpinstall.whitelist.add";
-const PREF_XPI_BLACKLIST_PERMISSIONS  = "xpinstall.blacklist.add";
-
-function newPrincipal(uri) {
-  return Services.scriptSecurityManager.createCodebasePrincipal(NetUtil.newURI(uri), {});
-}
-
-function do_check_permission_prefs(preferences) {
-  // Check preferences were emptied
-  for (let pref of preferences) {
-    try {
-      do_check_eq(Services.prefs.getCharPref(pref), "");
-    }
-    catch (e) {
-      // Successfully emptied
-    }
-  }
-}
-
-function clear_imported_preferences_cache() {
-  let scope = Components.utils.import("resource://gre/modules/PermissionsUtils.jsm", {});
-  scope.gImportedPrefBranches.clear();
-}
-
-function run_test() {
-  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9");
-
-  // Create own preferences to test
-  Services.prefs.setCharPref("xpinstall.whitelist.add.EMPTY", "");
-  Services.prefs.setCharPref("xpinstall.whitelist.add.TEST", "http://whitelist.example.com");
-  Services.prefs.setCharPref("xpinstall.blacklist.add.EMPTY", "");
-  Services.prefs.setCharPref("xpinstall.blacklist.add.TEST", "http://blacklist.example.com");
-
-  // Get list of preferences to check
-  var whitelistPreferences = Services.prefs.getChildList(PREF_XPI_WHITELIST_PERMISSIONS, {});
-  var blacklistPreferences = Services.prefs.getChildList(PREF_XPI_BLACKLIST_PERMISSIONS, {});
-  var preferences = whitelistPreferences.concat(blacklistPreferences);
-
-  startupManager();
-
-  // Permissions are imported lazily - act as thought we're checking an install,
-  // to trigger on-deman importing of the permissions.
-  AddonManager.isInstallAllowed("application/x-xpinstall", newPrincipal("http://example.com/file.xpi"));
-  do_check_permission_prefs(preferences);
-
-
-  // Import can also be triggerred by an observer notification by any other area
-  // of code, such as a permissions management UI.
-
-  // First, request to flush all permissions
-  clear_imported_preferences_cache();
-  Services.prefs.setCharPref("xpinstall.whitelist.add.TEST2", "https://whitelist2.example.com");
-  Services.obs.notifyObservers(null, "flush-pending-permissions", "install");
-  do_check_permission_prefs(preferences);
-
-  // Then, request to flush just install permissions
-  clear_imported_preferences_cache();
-  Services.prefs.setCharPref("xpinstall.whitelist.add.TEST3", "https://whitelist3.example.com");
-  Services.obs.notifyObservers(null, "flush-pending-permissions", "");
-  do_check_permission_prefs(preferences);
-
-  // And a request to flush some other permissions sholdn't flush install permissions
-  clear_imported_preferences_cache();
-  Services.prefs.setCharPref("xpinstall.whitelist.add.TEST4", "https://whitelist4.example.com");
-  Services.obs.notifyObservers(null, "flush-pending-permissions", "lolcats");
-  do_check_eq(Services.prefs.getCharPref("xpinstall.whitelist.add.TEST4"), "https://whitelist4.example.com");
-}
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+// Tests that xpinstall.[whitelist|blacklist].add preferences are emptied when
+// converted into permissions.
+
+const PREF_XPI_WHITELIST_PERMISSIONS  = "xpinstall.whitelist.add";
+const PREF_XPI_BLACKLIST_PERMISSIONS  = "xpinstall.blacklist.add";
+
+function newPrincipal(uri) {
+  return Services.scriptSecurityManager.createCodebasePrincipal(NetUtil.newURI(uri), {});
+}
+
+function do_check_permission_prefs(preferences) {
+  // Check preferences were emptied
+  for (let pref of preferences) {
+    try {
+      do_check_eq(Services.prefs.getCharPref(pref), "");
+    }
+    catch (e) {
+      // Successfully emptied
+    }
+  }
+}
+
+function clear_imported_preferences_cache() {
+  let scope = Components.utils.import("resource://gre/modules/PermissionsUtils.jsm", {});
+  scope.gImportedPrefBranches.clear();
+}
+
+function run_test() {
+  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9");
+
+  // Create own preferences to test
+  Services.prefs.setCharPref("xpinstall.whitelist.add.EMPTY", "");
+  Services.prefs.setCharPref("xpinstall.whitelist.add.TEST", "http://whitelist.example.com");
+  Services.prefs.setCharPref("xpinstall.blacklist.add.EMPTY", "");
+  Services.prefs.setCharPref("xpinstall.blacklist.add.TEST", "http://blacklist.example.com");
+
+  // Get list of preferences to check
+  var whitelistPreferences = Services.prefs.getChildList(PREF_XPI_WHITELIST_PERMISSIONS, {});
+  var blacklistPreferences = Services.prefs.getChildList(PREF_XPI_BLACKLIST_PERMISSIONS, {});
+  var preferences = whitelistPreferences.concat(blacklistPreferences);
+
+  startupManager();
+
+  // Permissions are imported lazily - act as thought we're checking an install,
+  // to trigger on-deman importing of the permissions.
+  AddonManager.isInstallAllowed("application/x-xpinstall", newPrincipal("http://example.com/file.xpi"));
+  do_check_permission_prefs(preferences);
+
+
+  // Import can also be triggerred by an observer notification by any other area
+  // of code, such as a permissions management UI.
+
+  // First, request to flush all permissions
+  clear_imported_preferences_cache();
+  Services.prefs.setCharPref("xpinstall.whitelist.add.TEST2", "https://whitelist2.example.com");
+  Services.obs.notifyObservers(null, "flush-pending-permissions", "install");
+  do_check_permission_prefs(preferences);
+
+  // Then, request to flush just install permissions
+  clear_imported_preferences_cache();
+  Services.prefs.setCharPref("xpinstall.whitelist.add.TEST3", "https://whitelist3.example.com");
+  Services.obs.notifyObservers(null, "flush-pending-permissions", "");
+  do_check_permission_prefs(preferences);
+
+  // And a request to flush some other permissions sholdn't flush install permissions
+  clear_imported_preferences_cache();
+  Services.prefs.setCharPref("xpinstall.whitelist.add.TEST4", "https://whitelist4.example.com");
+  Services.obs.notifyObservers(null, "flush-pending-permissions", "lolcats");
+  do_check_eq(Services.prefs.getCharPref("xpinstall.whitelist.add.TEST4"), "https://whitelist4.example.com");
+}
--- a/toolkit/mozapps/extensions/test/xpcshell/test_pluginchange.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_pluginchange.js
@@ -1,283 +1,283 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-const LIST_UPDATED_TOPIC     = "plugins-list-updated";
-
-// We need to use the same algorithm for generating IDs for plugins
-var { getIDHashForString } = Components.utils.import("resource://gre/modules/addons/PluginProvider.jsm");
-var { MockRegistrar } = Components.utils.import("resource://testing-common/MockRegistrar.jsm");
-
-function PluginTag(name, description) {
-  this.name = name;
-  this.description = description;
-}
-
-PluginTag.prototype = {
-  name: null,
-  description: null,
-  version: "1.0",
-  filename: null,
-  fullpath: null,
-  disabled: false,
-  blocklisted: false,
-  clicktoplay: false,
-
-  mimeTypes: [],
-
-  getMimeTypes: function(count) {
-    count.value = this.mimeTypes.length;
-    return this.mimeTypes;
-  }
-};
-
-PLUGINS = [
-  // A standalone plugin
-  new PluginTag("Java", "A mock Java plugin"),
-
-  // A plugin made up of two plugin files
-  new PluginTag("Flash", "A mock Flash plugin"),
-  new PluginTag("Flash", "A mock Flash plugin")
-];
-
-gPluginHost = {
-  // nsIPluginHost
-  getPluginTags: function(count) {
-    count.value = PLUGINS.length;
-    return PLUGINS;
-  },
-
-  QueryInterface: XPCOMUtils.generateQI([AM_Ci.nsIPluginHost])
-};
-
-MockRegistrar.register("@mozilla.org/plugin/host;1", gPluginHost);
-
-// This verifies that when the list of plugins changes the add-ons manager
-// correctly updates
-function run_test() {
-  do_test_pending();
-  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
-
-  Services.prefs.setBoolPref("media.gmp-provider.enabled", false);
-
-  startupManager();
-  AddonManager.addAddonListener(AddonListener);
-  AddonManager.addInstallListener(InstallListener);
-
-  run_test_1();
-}
-
-function end_test() {
-  do_execute_soon(do_test_finished);
-}
-
-function sortAddons(addons) {
-  addons.sort(function(a, b) {
-    return a.name.localeCompare(b.name);
-  });
-}
-
-// Basic check that the mock object works
-function run_test_1() {
-  AddonManager.getAddonsByTypes(["plugin"], function(addons) {
-    sortAddons(addons);
-
-    do_check_eq(addons.length, 2);
-
-    do_check_eq(addons[0].name, "Flash");
-    do_check_false(addons[0].userDisabled);
-    do_check_eq(addons[1].name, "Java");
-    do_check_false(addons[1].userDisabled);
-
-    run_test_2();
-  });
-}
-
-// No change to the list should not trigger any events or changes in the API
-function run_test_2() {
-  // Reorder the list a bit
-  let tag = PLUGINS[0];
-  PLUGINS[0] = PLUGINS[2];
-  PLUGINS[2] = PLUGINS[1];
-  PLUGINS[1] = tag;
-
-  Services.obs.notifyObservers(null, LIST_UPDATED_TOPIC, null);
-
-  AddonManager.getAddonsByTypes(["plugin"], function(addons) {
-    sortAddons(addons);
-
-    do_check_eq(addons.length, 2);
-
-    do_check_eq(addons[0].name, "Flash");
-    do_check_false(addons[0].userDisabled);
-    do_check_eq(addons[1].name, "Java");
-    do_check_false(addons[1].userDisabled);
-
-    run_test_3();
-  });
-}
-
-// Tests that a newly detected plugin shows up in the API and sends out events
-function run_test_3() {
-  let tag = new PluginTag("Quicktime", "A mock Quicktime plugin");
-  PLUGINS.push(tag);
-  let id = getIDHashForString(tag.name + tag.description);
-
-  let test_params = {};
-  test_params[id] = [
-    ["onInstalling", false],
-    "onInstalled"
-  ];
-
-  prepare_test(test_params, [
-    "onExternalInstall"
-  ]);
-
-  Services.obs.notifyObservers(null, LIST_UPDATED_TOPIC, null);
-
-  ensure_test_completed();
-
-  AddonManager.getAddonsByTypes(["plugin"], function(addons) {
-    sortAddons(addons);
-
-    do_check_eq(addons.length, 3);
-
-    do_check_eq(addons[0].name, "Flash");
-    do_check_false(addons[0].userDisabled);
-    do_check_eq(addons[1].name, "Java");
-    do_check_false(addons[1].userDisabled);
-    do_check_eq(addons[2].name, "Quicktime");
-    do_check_false(addons[2].userDisabled);
-
-    run_test_4();
-  });
-}
-
-// Tests that a removed plugin disappears from in the API and sends out events
-function run_test_4() {
-  let tag = PLUGINS.splice(1, 1)[0];
-  let id = getIDHashForString(tag.name + tag.description);
-
-  let test_params = {};
-  test_params[id] = [
-    ["onUninstalling", false],
-    "onUninstalled"
-  ];
-
-  prepare_test(test_params);
-
-  Services.obs.notifyObservers(null, LIST_UPDATED_TOPIC, null);
-
-  ensure_test_completed();
-
-  AddonManager.getAddonsByTypes(["plugin"], function(addons) {
-    sortAddons(addons);
-
-    do_check_eq(addons.length, 2);
-
-    do_check_eq(addons[0].name, "Flash");
-    do_check_false(addons[0].userDisabled);
-    do_check_eq(addons[1].name, "Quicktime");
-    do_check_false(addons[1].userDisabled);
-
-    run_test_5();
-  });
-}
-
-// Removing part of the flash plugin should have no effect
-function run_test_5() {
-  PLUGINS.splice(0, 1);
-
-  Services.obs.notifyObservers(null, LIST_UPDATED_TOPIC, null);
-
-  ensure_test_completed();
-
-  AddonManager.getAddonsByTypes(["plugin"], function(addons) {
-    sortAddons(addons);
-
-    do_check_eq(addons.length, 2);
-
-    do_check_eq(addons[0].name, "Flash");
-    do_check_false(addons[0].userDisabled);
-    do_check_eq(addons[1].name, "Quicktime");
-    do_check_false(addons[1].userDisabled);
-
-    run_test_6();
-  });
-}
-
-// Replacing flash should be detected
-function run_test_6() {
-  let oldTag = PLUGINS.splice(0, 1)[0];
-  let newTag = new PluginTag("Flash 2", "A new crash-free Flash!");
-  newTag.disabled = true;
-  PLUGINS.push(newTag);
-
-  let test_params = {};
-  test_params[getIDHashForString(oldTag.name + oldTag.description)] = [
-    ["onUninstalling", false],
-    "onUninstalled"
-  ];
-  test_params[getIDHashForString(newTag.name + newTag.description)] = [
-    ["onInstalling", false],
-    "onInstalled"
-  ];
-
-  prepare_test(test_params, [
-    "onExternalInstall"
-  ]);
-
-  Services.obs.notifyObservers(null, LIST_UPDATED_TOPIC, null);
-
-  ensure_test_completed();
-
-  AddonManager.getAddonsByTypes(["plugin"], function(addons) {
-    sortAddons(addons);
-
-    do_check_eq(addons.length, 2);
-
-    do_check_eq(addons[0].name, "Flash 2");
-    do_check_true(addons[0].userDisabled);
-    do_check_eq(addons[1].name, "Quicktime");
-    do_check_false(addons[1].userDisabled);
-
-    run_test_7();
-  });
-}
-
-// If new tags are detected and the disabled state changes then we should send
-// out appropriate notifications
-function run_test_7() {
-  PLUGINS[0] = new PluginTag("Quicktime", "A mock Quicktime plugin");
-  PLUGINS[0].disabled = true;
-  PLUGINS[1] = new PluginTag("Flash 2", "A new crash-free Flash!");
-
-  let test_params = {};
-  test_params[getIDHashForString(PLUGINS[0].name + PLUGINS[0].description)] = [
-    ["onDisabling", false],
-    "onDisabled"
-  ];
-  test_params[getIDHashForString(PLUGINS[1].name + PLUGINS[1].description)] = [
-    ["onEnabling", false],
-    "onEnabled"
-  ];
-
-  prepare_test(test_params);
-
-  Services.obs.notifyObservers(null, LIST_UPDATED_TOPIC, null);
-
-  ensure_test_completed();
-
-  AddonManager.getAddonsByTypes(["plugin"], function(addons) {
-    sortAddons(addons);
-
-    do_check_eq(addons.length, 2);
-
-    do_check_eq(addons[0].name, "Flash 2");
-    do_check_false(addons[0].userDisabled);
-    do_check_eq(addons[1].name, "Quicktime");
-    do_check_true(addons[1].userDisabled);
-
-    end_test();
-  });
-}
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+const LIST_UPDATED_TOPIC     = "plugins-list-updated";
+
+// We need to use the same algorithm for generating IDs for plugins
+var { getIDHashForString } = Components.utils.import("resource://gre/modules/addons/PluginProvider.jsm");
+var { MockRegistrar } = Components.utils.import("resource://testing-common/MockRegistrar.jsm");
+
+function PluginTag(name, description) {
+  this.name = name;
+  this.description = description;
+}
+
+PluginTag.prototype = {
+  name: null,
+  description: null,
+  version: "1.0",
+  filename: null,
+  fullpath: null,
+  disabled: false,
+  blocklisted: false,
+  clicktoplay: false,
+
+  mimeTypes: [],
+
+  getMimeTypes: function(count) {
+    count.value = this.mimeTypes.length;
+    return this.mimeTypes;
+  }
+};
+
+PLUGINS = [
+  // A standalone plugin
+  new PluginTag("Java", "A mock Java plugin"),
+
+  // A plugin made up of two plugin files
+  new PluginTag("Flash", "A mock Flash plugin"),
+  new PluginTag("Flash", "A mock Flash plugin")
+];
+
+gPluginHost = {
+  // nsIPluginHost
+  getPluginTags: function(count) {
+    count.value = PLUGINS.length;
+    return PLUGINS;
+  },
+
+  QueryInterface: XPCOMUtils.generateQI([AM_Ci.nsIPluginHost])
+};
+
+MockRegistrar.register("@mozilla.org/plugin/host;1", gPluginHost);
+
+// This verifies that when the list of plugins changes the add-ons manager
+// correctly updates
+function run_test() {
+  do_test_pending();
+  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
+
+  Services.prefs.setBoolPref("media.gmp-provider.enabled", false);
+
+  startupManager();
+  AddonManager.addAddonListener(AddonListener);
+  AddonManager.addInstallListener(InstallListener);
+
+  run_test_1();
+}
+
+function end_test() {
+  do_execute_soon(do_test_finished);
+}
+
+function sortAddons(addons) {
+  addons.sort(function(a, b) {
+    return a.name.localeCompare(b.name);
+  });
+}
+
+// Basic check that the mock object works
+function run_test_1() {
+  AddonManager.getAddonsByTypes(["plugin"], function(addons) {
+    sortAddons(addons);
+
+    do_check_eq(addons.length, 2);
+
+    do_check_eq(addons[0].name, "Flash");
+    do_check_false(addons[0].userDisabled);
+    do_check_eq(addons[1].name, "Java");
+    do_check_false(addons[1].userDisabled);
+
+    run_test_2();
+  });
+}
+
+// No change to the list should not trigger any events or changes in the API
+function run_test_2() {
+  // Reorder the list a bit
+  let tag = PLUGINS[0];
+  PLUGINS[0] = PLUGINS[2];
+  PLUGINS[2] = PLUGINS[1];
+  PLUGINS[1] = tag;
+
+  Services.obs.notifyObservers(null, LIST_UPDATED_TOPIC, null);
+
+  AddonManager.getAddonsByTypes(["plugin"], function(addons) {
+    sortAddons(addons);
+
+    do_check_eq(addons.length, 2);
+
+    do_check_eq(addons[0].name, "Flash");
+    do_check_false(addons[0].userDisabled);
+    do_check_eq(addons[1].name, "Java");
+    do_check_false(addons[1].userDisabled);
+
+    run_test_3();
+  });
+}
+
+// Tests that a newly detected plugin shows up in the API and sends out events
+function run_test_3() {
+  let tag = new PluginTag("Quicktime", "A mock Quicktime plugin");
+  PLUGINS.push(tag);
+  let id = getIDHashForString(tag.name + tag.description);
+
+  let test_params = {};
+  test_params[id] = [
+    ["onInstalling", false],
+    "onInstalled"
+  ];
+
+  prepare_test(test_params, [
+    "onExternalInstall"
+  ]);
+
+  Services.obs.notifyObservers(null, LIST_UPDATED_TOPIC, null);
+
+  ensure_test_completed();
+
+  AddonManager.getAddonsByTypes(["plugin"], function(addons) {
+    sortAddons(addons);
+
+    do_check_eq(addons.length, 3);
+
+    do_check_eq(addons[0].name, "Flash");
+    do_check_false(addons[0].userDisabled);
+    do_check_eq(addons[1].name, "Java");
+    do_check_false(addons[1].userDisabled);
+    do_check_eq(addons[2].name, "Quicktime");
+    do_check_false(addons[2].userDisabled);
+
+    run_test_4();
+  });
+}
+
+// Tests that a removed plugin disappears from in the API and sends out events
+function run_test_4() {
+  let tag = PLUGINS.splice(1, 1)[0];
+  let id = getIDHashForString(tag.name + tag.description);
+
+  let test_params = {};
+  test_params[id] = [
+    ["onUninstalling", false],
+    "onUninstalled"
+  ];
+
+  prepare_test(test_params);
+
+  Services.obs.notifyObservers(null, LIST_UPDATED_TOPIC, null);
+
+  ensure_test_completed();
+
+  AddonManager.getAddonsByTypes(["plugin"], function(addons) {
+    sortAddons(addons);
+
+    do_check_eq(addons.length, 2);
+
+    do_check_eq(addons[0].name, "Flash");
+    do_check_false(addons[0].userDisabled);
+    do_check_eq(addons[1].name, "Quicktime");
+    do_check_false(addons[1].userDisabled);
+
+    run_test_5();
+  });
+}
+
+// Removing part of the flash plugin should have no effect
+function run_test_5() {
+  PLUGINS.splice(0, 1);
+
+  Services.obs.notifyObservers(null, LIST_UPDATED_TOPIC, null);
+
+  ensure_test_completed();
+
+  AddonManager.getAddonsByTypes(["plugin"], function(addons) {
+    sortAddons(addons);
+
+    do_check_eq(addons.length, 2);
+
+    do_check_eq(addons[0].name, "Flash");
+    do_check_false(addons[0].userDisabled);
+    do_check_eq(addons[1].name, "Quicktime");
+    do_check_false(addons[1].userDisabled);
+
+    run_test_6();
+  });
+}
+
+// Replacing flash should be detected
+function run_test_6() {
+  let oldTag = PLUGINS.splice(0, 1)[0];
+  let newTag = new PluginTag("Flash 2", "A new crash-free Flash!");
+  newTag.disabled = true;
+  PLUGINS.push(newTag);
+
+  let test_params = {};
+  test_params[getIDHashForString(oldTag.name + oldTag.description)] = [
+    ["onUninstalling", false],
+    "onUninstalled"
+  ];
+  test_params[getIDHashForString(newTag.name + newTag.description)] = [
+    ["onInstalling", false],
+    "onInstalled"
+  ];
+
+  prepare_test(test_params, [
+    "onExternalInstall"
+  ]);
+
+  Services.obs.notifyObservers(null, LIST_UPDATED_TOPIC, null);
+
+  ensure_test_completed();
+
+  AddonManager.getAddonsByTypes(["plugin"], function(addons) {
+    sortAddons(addons);
+
+    do_check_eq(addons.length, 2);
+
+    do_check_eq(addons[0].name, "Flash 2");
+    do_check_true(addons[0].userDisabled);
+    do_check_eq(addons[1].name, "Quicktime");
+    do_check_false(addons[1].userDisabled);
+
+    run_test_7();
+  });
+}
+
+// If new tags are detected and the disabled state changes then we should send
+// out appropriate notifications
+function run_test_7() {
+  PLUGINS[0] = new PluginTag("Quicktime", "A mock Quicktime plugin");
+  PLUGINS[0].disabled = true;
+  PLUGINS[1] = new PluginTag("Flash 2", "A new crash-free Flash!");
+
+  let test_params = {};
+  test_params[getIDHashForString(PLUGINS[0].name + PLUGINS[0].description)] = [
+    ["onDisabling", false],
+    "onDisabled"
+  ];
+  test_params[getIDHashForString(PLUGINS[1].name + PLUGINS[1].description)] = [
+    ["onEnabling", false],
+    "onEnabled"
+  ];
+
+  prepare_test(test_params);
+
+  Services.obs.notifyObservers(null, LIST_UPDATED_TOPIC, null);
+
+  ensure_test_completed();
+
+  AddonManager.getAddonsByTypes(["plugin"], function(addons) {
+    sortAddons(addons);
+
+    do_check_eq(addons.length, 2);
+
+    do_check_eq(addons[0].name, "Flash 2");
+    do_check_false(addons[0].userDisabled);
+    do_check_eq(addons[1].name, "Quicktime");
+    do_check_true(addons[1].userDisabled);
+
+    end_test();
+  });
+}
--- a/toolkit/mozapps/extensions/test/xpcshell/test_strictcompatibility.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_strictcompatibility.js
@@ -1,203 +1,203 @@
-/* Any copyright is dedicated to the Public Domain.
-   http://creativecommons.org/publicdomain/zero/1.0/ */
-
-// Tests AddonManager.strictCompatibility and it's related preference,
-// extensions.strictCompatibility, and the strictCompatibility option in
-// install.rdf
-
-
-// Always compatible
-var addon1 = {
-  id: "addon1@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 1",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "1",
-    maxVersion: "1"
-  }]
-};
-
-// Incompatible in strict compatibility mode
-var addon2 = {
-  id: "addon2@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 2",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "0.7",
-    maxVersion: "0.8"
-  }]
-};
-
-// Theme - always uses strict compatibility, so is always incompatible
-var addon3 = {
-  id: "addon3@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 3",
-  internalName: "test-theme-3",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "0.8",
-    maxVersion: "0.9"
-  }]
-};
-
-// Opt-in to strict compatibility - always incompatible
-var addon4 = {
-  id: "addon4@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 4",
-  strictCompatibility: true,
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "0.8",
-    maxVersion: "0.9"
-  }]
-};
-
-// Addon from the future - would be marked as compatibile-by-default,
-// but minVersion is higher than the app version
-var addon5 = {
-  id: "addon5@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 5",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "3",
-    maxVersion: "5"
-  }]
-};
-
-// Extremely old addon - maxVersion is less than the mimimum compat version
-// set in extensions.minCompatibleVersion
-var addon6 = {
-  id: "addon6@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 6",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "0.1",
-    maxVersion: "0.2"
-  }]
-};
-
-// Dictionary - incompatible in strict compatibility mode
-var addon7= {
-  id: "addon7@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 7",
-  type: "64",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "0.8",
-    maxVersion: "0.9"
-  }]
-};
-
-
-
-const profileDir = gProfD.clone();
-profileDir.append("extensions");
-
-
-function do_check_compat_status(aStrict, aAddonCompat, aCallback) {
-  do_check_eq(AddonManager.strictCompatibility, aStrict);
-  AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
-                               "addon2@tests.mozilla.org",
-                               "addon3@tests.mozilla.org",
-                               "addon4@tests.mozilla.org",
-                               "addon5@tests.mozilla.org",
-                               "addon6@tests.mozilla.org",
-                               "addon7@tests.mozilla.org"],
-                              function([a1, a2, a3, a4, a5, a6, a7]) {
-    do_check_neq(a1, null);
-    do_check_eq(a1.isCompatible, aAddonCompat[0]);
-    do_check_eq(a1.appDisabled, !aAddonCompat[0]);
-    do_check_false(a1.strictCompatibility);
-
-    do_check_neq(a2, null);
-    do_check_eq(a2.isCompatible, aAddonCompat[1]);
-    do_check_eq(a2.appDisabled, !aAddonCompat[1]);
-    do_check_false(a2.strictCompatibility);
-
-    do_check_neq(a3, null);
-    do_check_eq(a3.isCompatible, aAddonCompat[2]);
-    do_check_eq(a3.appDisabled, !aAddonCompat[2]);
-    do_check_true(a3.strictCompatibility);
-
-    do_check_neq(a4, null);
-    do_check_eq(a4.isCompatible, aAddonCompat[3]);
-    do_check_eq(a4.appDisabled, !aAddonCompat[3]);
-    do_check_true(a4.strictCompatibility);
-
-    do_check_neq(a5, null);
-    do_check_eq(a5.isCompatible, aAddonCompat[4]);
-    do_check_eq(a5.appDisabled, !aAddonCompat[4]);
-    do_check_false(a5.strictCompatibility);
-
-    do_check_neq(a6, null);
-    do_check_eq(a6.isCompatible, aAddonCompat[5]);
-    do_check_eq(a6.appDisabled, !aAddonCompat[5]);
-    do_check_false(a6.strictCompatibility);
-
-    do_check_neq(a7, null);
-    do_check_eq(a7.isCompatible, aAddonCompat[6]);
-    do_check_eq(a7.appDisabled, !aAddonCompat[6]);
-    do_check_false(a7.strictCompatibility);
-
-    do_execute_soon(aCallback);
-  });
-}
-
-
-function run_test() {
-  do_test_pending();
-  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
-
-  writeInstallRDFForExtension(addon1, profileDir);
-  writeInstallRDFForExtension(addon2, profileDir);
-  writeInstallRDFForExtension(addon3, profileDir);
-  writeInstallRDFForExtension(addon4, profileDir);
-  writeInstallRDFForExtension(addon5, profileDir);
-  writeInstallRDFForExtension(addon6, profileDir);
-  writeInstallRDFForExtension(addon7, profileDir);
-
-  Services.prefs.setCharPref(PREF_EM_MIN_COMPAT_APP_VERSION, "0.1");
-
-  startupManager();
-
-  // Should default to enabling strict compat.
-  do_check_compat_status(true, [true, false, false, false, false, false, false], run_test_1);
-}
-
-function run_test_1() {
-  do_print("Test 1");
-  Services.prefs.setBoolPref(PREF_EM_STRICT_COMPATIBILITY, false);
-  do_check_compat_status(false, [true, true, false, false, false, true, true], run_test_2);
-}
-
-function run_test_2() {
-  do_print("Test 2");
-  restartManager();
-  do_check_compat_status(false, [true, true, false, false, false, true, true], run_test_3);
-}
-
-function run_test_3() {
-  do_print("Test 3");
-  Services.prefs.setBoolPref(PREF_EM_STRICT_COMPATIBILITY, true);
-  do_check_compat_status(true, [true, false, false, false, false, false, false], run_test_4);
-}
-
-function run_test_4() {
-  do_print("Test 4");
-  restartManager();
-  do_check_compat_status(true, [true, false, false, false, false, false, false], run_test_5);
-}
-
-function run_test_5() {
-  do_print("Test 5");
-  Services.prefs.setBoolPref(PREF_EM_STRICT_COMPATIBILITY, false);
-  Services.prefs.setCharPref(PREF_EM_MIN_COMPAT_APP_VERSION, "0.4");
-  do_check_compat_status(false, [true, true, false, false, false, false, true], do_test_finished);
-}
+/* Any copyright is dedicated to the Public Domain.
+   http://creativecommons.org/publicdomain/zero/1.0/ */
+
+// Tests AddonManager.strictCompatibility and it's related preference,
+// extensions.strictCompatibility, and the strictCompatibility option in
+// install.rdf
+
+
+// Always compatible
+var addon1 = {
+  id: "addon1@tests.mozilla.org",
+  version: "1.0",
+  name: "Test 1",
+  targetApplications: [{
+    id: "xpcshell@tests.mozilla.org",
+    minVersion: "1",
+    maxVersion: "1"
+  }]
+};
+
+// Incompatible in strict compatibility mode
+var addon2 = {
+  id: "addon2@tests.mozilla.org",
+  version: "1.0",
+  name: "Test 2",
+  targetApplications: [{
+    id: "xpcshell@tests.mozilla.org",
+    minVersion: "0.7",
+    maxVersion: "0.8"
+  }]
+};
+
+// Theme - always uses strict compatibility, so is always incompatible
+var addon3 = {
+  id: "addon3@tests.mozilla.org",
+  version: "1.0",
+  name: "Test 3",
+  internalName: "test-theme-3",
+  targetApplications: [{
+    id: "xpcshell@tests.mozilla.org",
+    minVersion: "0.8",
+    maxVersion: "0.9"
+  }]
+};
+
+// Opt-in to strict compatibility - always incompatible
+var addon4 = {
+  id: "addon4@tests.mozilla.org",
+  version: "1.0",
+  name: "Test 4",
+  strictCompatibility: true,
+  targetApplications: [{
+    id: "xpcshell@tests.mozilla.org",
+    minVersion: "0.8",
+    maxVersion: "0.9"
+  }]
+};
+
+// Addon from the future - would be marked as compatibile-by-default,
+// but minVersion is higher than the app version
+var addon5 = {
+  id: "addon5@tests.mozilla.org",
+  version: "1.0",
+  name: "Test 5",
+  targetApplications: [{
+    id: "xpcshell@tests.mozilla.org",
+    minVersion: "3",
+    maxVersion: "5"
+  }]
+};
+
+// Extremely old addon - maxVersion is less than the mimimum compat version
+// set in extensions.minCompatibleVersion
+var addon6 = {
+  id: "addon6@tests.mozilla.org",
+  version: "1.0",
+  name: "Test 6",
+  targetApplications: [{
+    id: "xpcshell@tests.mozilla.org",
+    minVersion: "0.1",
+    maxVersion: "0.2"
+  }]
+};
+
+// Dictionary - incompatible in strict compatibility mode
+var addon7= {
+  id: "addon7@tests.mozilla.org",
+  version: "1.0",
+  name: "Test 7",
+  type: "64",
+  targetApplications: [{
+    id: "xpcshell@tests.mozilla.org",
+    minVersion: "0.8",
+    maxVersion: "0.9"
+  }]
+};
+
+
+
+const profileDir = gProfD.clone();
+profileDir.append("extensions");
+
+
+function do_check_compat_status(aStrict, aAddonCompat, aCallback) {
+  do_check_eq(AddonManager.strictCompatibility, aStrict);
+  AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
+                               "addon2@tests.mozilla.org",
+                               "addon3@tests.mozilla.org",
+                               "addon4@tests.mozilla.org",
+                               "addon5@tests.mozilla.org",
+                               "addon6@tests.mozilla.org",
+                               "addon7@tests.mozilla.org"],
+                              function([a1, a2, a3, a4, a5, a6, a7]) {
+    do_check_neq(a1, null);
+    do_check_eq(a1.isCompatible, aAddonCompat[0]);
+    do_check_eq(a1.appDisabled, !aAddonCompat[0]);
+    do_check_false(a1.strictCompatibility);
+
+    do_check_neq(a2, null);
+    do_check_eq(a2.isCompatible, aAddonCompat[1]);
+    do_check_eq(a2.appDisabled, !aAddonCompat[1]);
+    do_check_false(a2.strictCompatibility);
+
+    do_check_neq(a3, null);
+    do_check_eq(a3.isCompatible, aAddonCompat[2]);
+    do_check_eq(a3.appDisabled, !aAddonCompat[2]);
+    do_check_true(a3.strictCompatibility);
+
+    do_check_neq(a4, null);
+    do_check_eq(a4.isCompatible, aAddonCompat[3]);
+    do_check_eq(a4.appDisabled, !aAddonCompat[3]);
+    do_check_true(a4.strictCompatibility);
+
+    do_check_neq(a5, null);
+    do_check_eq(a5.isCompatible, aAddonCompat[4]);
+    do_check_eq(a5.appDisabled, !aAddonCompat[4]);
+    do_check_false(a5.strictCompatibility);
+
+    do_check_neq(a6, null);
+    do_check_eq(a6.isCompatible, aAddonCompat[5]);
+    do_check_eq(a6.appDisabled, !aAddonCompat[5]);
+    do_check_false(a6.strictCompatibility);
+
+    do_check_neq(a7, null);
+    do_check_eq(a7.isCompatible, aAddonCompat[6]);
+    do_check_eq(a7.appDisabled, !aAddonCompat[6]);
+    do_check_false(a7.strictCompatibility);
+
+    do_execute_soon(aCallback);
+  });
+}
+
+
+function run_test() {
+  do_test_pending();
+  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
+
+  writeInstallRDFForExtension(addon1, profileDir);
+  writeInstallRDFForExtension(addon2, profileDir);
+  writeInstallRDFForExtension(addon3, profileDir);
+  writeInstallRDFForExtension(addon4, profileDir);
+  writeInstallRDFForExtension(addon5, profileDir);
+  writeInstallRDFForExtension(addon6, profileDir);
+  writeInstallRDFForExtension(addon7, profileDir);
+
+  Services.prefs.setCharPref(PREF_EM_MIN_COMPAT_APP_VERSION, "0.1");
+
+  startupManager();
+
+  // Should default to enabling strict compat.
+  do_check_compat_status(true, [true, false, false, false, false, false, false], run_test_1);
+}
+
+function run_test_1() {
+  do_print("Test 1");
+  Services.prefs.setBoolPref(PREF_EM_STRICT_COMPATIBILITY, false);
+  do_check_compat_status(false, [true, true, false, false, false, true, true], run_test_2);
+}
+
+function run_test_2() {
+  do_print("Test 2");
+  restartManager();
+  do_check_compat_status(false, [true, true, false, false, false, true, true], run_test_3);
+}
+
+function run_test_3() {
+  do_print("Test 3");
+  Services.prefs.setBoolPref(PREF_EM_STRICT_COMPATIBILITY, true);
+  do_check_compat_status(true, [true, false, false, false, false, false, false], run_test_4);
+}
+
+function run_test_4() {
+  do_print("Test 4");
+  restartManager();
+  do_check_compat_status(true, [true, false, false, false, false, false, false], run_test_5);
+}
+
+function run_test_5() {
+  do_print("Test 5");
+  Services.prefs.setBoolPref(PREF_EM_STRICT_COMPATIBILITY, false);
+  Services.prefs.setCharPref(PREF_EM_MIN_COMPAT_APP_VERSION, "0.4");
+  do_check_compat_status(false, [true, true, false, false, false, false, true], do_test_finished);
+}