diff options
Diffstat (limited to 'devtools/server/tests/browser/browser_stylesheets_getTextEmpty.js')
-rw-r--r-- | devtools/server/tests/browser/browser_stylesheets_getTextEmpty.js | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/devtools/server/tests/browser/browser_stylesheets_getTextEmpty.js b/devtools/server/tests/browser/browser_stylesheets_getTextEmpty.js new file mode 100644 index 0000000000..8d83392852 --- /dev/null +++ b/devtools/server/tests/browser/browser_stylesheets_getTextEmpty.js @@ -0,0 +1,55 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +// Test that StyleSheetsActor.getText handles empty text correctly. + +const CSS_CONTENT = "body { background-color: #f06; }"; +const TEST_URI = `data:text/html;charset=utf-8,<style>${encodeURIComponent( + CSS_CONTENT +)}</style>`; + +add_task(async function() { + const target = await addTabTarget(TEST_URI); + + const { + ResourceWatcher, + } = require("devtools/shared/resources/resource-watcher"); + const { TargetList } = require("devtools/shared/resources/target-list"); + + const targetList = new TargetList(target.client.mainRoot, target); + await targetList.startListening(); + const resourceWatcher = new ResourceWatcher(targetList); + + const styleSheetsFront = await target.getFront("stylesheets"); + ok(styleSheetsFront, "The StyleSheetsFront was created."); + + const sheets = []; + await resourceWatcher.watchResources([ResourceWatcher.TYPES.STYLESHEET], { + onAvailable: resources => sheets.push(...resources), + }); + is(sheets.length, 1, "watchResources returned the correct number of sheets"); + + const { resourceId } = sheets[0]; + + is( + await getStyleSheetText(styleSheetsFront, resourceId), + CSS_CONTENT, + "The stylesheet has expected initial text" + ); + info("Update stylesheet content via the styleSheetsFront"); + await styleSheetsFront.update(resourceId, "", false); + is( + await getStyleSheetText(styleSheetsFront, resourceId), + "", + "Stylesheet is now empty, as expected" + ); + + await target.destroy(); +}); + +async function getStyleSheetText(styleSheetsFront, resourceId) { + const longStringFront = await styleSheetsFront.getText(resourceId); + return longStringFront.string(); +} |