browser_cubic-bezier-05.js (1821B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 // Tests that the CubicBezierPresetWidget cycles menus 7 8 const { 9 CubicBezierPresetWidget, 10 } = require("resource://devtools/client/shared/widgets/CubicBezierWidget.js"); 11 const { 12 PREDEFINED, 13 PRESETS, 14 DEFAULT_PRESET_CATEGORY, 15 } = require("resource://devtools/client/shared/widgets/CubicBezierPresets.js"); 16 17 const TEST_URI = CHROME_URL_ROOT + "doc_cubic-bezier-01.html"; 18 19 add_task(async function () { 20 const { host, doc } = await createHost("bottom", TEST_URI); 21 22 const container = doc.querySelector("#cubic-bezier-container"); 23 const w = new CubicBezierPresetWidget(container); 24 25 info("Checking that preset is selected if coordinates are known"); 26 27 w.refreshMenu([0, 0, 0, 0]); 28 is( 29 w.activeCategory, 30 container.querySelector(`#${DEFAULT_PRESET_CATEGORY}`), 31 "The default category is selected" 32 ); 33 is(w._activePreset, null, "There is no selected category"); 34 35 w.refreshMenu(PREDEFINED.linear); 36 is( 37 w.activeCategory, 38 container.querySelector("#ease-in-out"), 39 "The ease-in-out category is active" 40 ); 41 is( 42 w._activePreset, 43 container.querySelector("#ease-in-out-linear"), 44 "The ease-in-out-linear preset is active" 45 ); 46 47 w.refreshMenu(PRESETS["ease-out"]["ease-out-sine"]); 48 is( 49 w.activeCategory, 50 container.querySelector("#ease-out"), 51 "The ease-out category is active" 52 ); 53 is( 54 w._activePreset, 55 container.querySelector("#ease-out-sine"), 56 "The ease-out-sine preset is active" 57 ); 58 59 w.refreshMenu([0, 0, 0, 0]); 60 is( 61 w.activeCategory, 62 container.querySelector("#ease-out"), 63 "The ease-out category is still active" 64 ); 65 is(w._activePreset, null, "No preset is active"); 66 67 w.destroy(); 68 host.destroy(); 69 });