diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /devtools/client/styleeditor/test/browser_styleeditor_inline_friendly_names.js | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'devtools/client/styleeditor/test/browser_styleeditor_inline_friendly_names.js')
-rw-r--r-- | devtools/client/styleeditor/test/browser_styleeditor_inline_friendly_names.js | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/devtools/client/styleeditor/test/browser_styleeditor_inline_friendly_names.js b/devtools/client/styleeditor/test/browser_styleeditor_inline_friendly_names.js new file mode 100644 index 000000000..fcf1192b5 --- /dev/null +++ b/devtools/client/styleeditor/test/browser_styleeditor_inline_friendly_names.js @@ -0,0 +1,88 @@ +/* vim: set ts=2 et sw=2 tw=80: */ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ +"use strict"; + +// Test that inline style sheets get correct names if they are saved to disk and +// that those names survice a reload but not navigation to another page. + +const FIRST_TEST_PAGE = TEST_BASE_HTTP + "inline-1.html"; +const SECOND_TEST_PAGE = TEST_BASE_HTTP + "inline-2.html"; +const SAVE_PATH = "test.css"; + +add_task(function* () { + let { ui } = yield openStyleEditorForURL(FIRST_TEST_PAGE); + + testIndentifierGeneration(ui); + + yield saveFirstInlineStyleSheet(ui); + yield testFriendlyNamesAfterSave(ui); + yield reloadPageAndWaitForStyleSheets(ui); + yield testFriendlyNamesAfterSave(ui); + yield navigateToAndWaitForStyleSheets(SECOND_TEST_PAGE, ui); + yield testFriendlyNamesAfterNavigation(ui); +}); + +function testIndentifierGeneration(ui) { + let fakeStyleSheetFile = { + "href": "http://example.com/test.css", + "nodeHref": "http://example.com/", + "styleSheetIndex": 1 + }; + + let fakeInlineStyleSheet = { + "href": null, + "nodeHref": "http://example.com/", + "styleSheetIndex": 2 + }; + + is(ui.getStyleSheetIdentifier(fakeStyleSheetFile), + "http://example.com/test.css", + "URI is the identifier of style sheet file."); + + is(ui.getStyleSheetIdentifier(fakeInlineStyleSheet), + "inline-2-at-http://example.com/", + "Inline sheets are identified by their page and position in the page."); +} + +function saveFirstInlineStyleSheet(ui) { + let deferred = defer(); + let editor = ui.editors[0]; + + let destFile = FileUtils.getFile("ProfD", [SAVE_PATH]); + + editor.saveToFile(destFile, function (file) { + ok(file, "File was correctly saved."); + deferred.resolve(); + }); + + return deferred.promise; +} + +function testFriendlyNamesAfterSave(ui) { + let firstEditor = ui.editors[0]; + let secondEditor = ui.editors[1]; + + // The friendly name of first sheet should've been remembered, the second + // should not be the same (bug 969900). + is(firstEditor.friendlyName, SAVE_PATH, + "Friendly name is correct for the saved inline style sheet."); + isnot(secondEditor.friendlyName, SAVE_PATH, + "Friendly name for the second inline sheet isn't the same as the first."); + + return promise.resolve(null); +} + +function testFriendlyNamesAfterNavigation(ui) { + let firstEditor = ui.editors[0]; + let secondEditor = ui.editors[1]; + + // Inline style sheets shouldn't have the name of previously saved file as the + // page is different. + isnot(firstEditor.friendlyName, SAVE_PATH, + "The first editor doesn't have the save path as a friendly name."); + isnot(secondEditor.friendlyName, SAVE_PATH, + "The second editor doesn't have the save path as a friendly name."); + + return promise.resolve(null); +} |