test_tabs_absolute_order.js (2335B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 const { require } = ChromeUtils.importESModule( 7 "resource://devtools/shared/loader/Loader.sys.mjs" 8 ); 9 10 const TEST_DATA = [ 11 { 12 description: "Test for no order in preference", 13 preferenceOrder: [], 14 currentTabsOrder: ["T1", "T2", "T3", "T4", "T5"], 15 dragTarget: "T1", 16 expectedOrder: ["T1", "T2", "T3", "T4", "T5"], 17 }, 18 { 19 description: "Test for drag a tab to left with hidden tab", 20 preferenceOrder: ["T1", "T2", "T3", "E1", "T4", "T5"], 21 currentTabsOrder: ["T1", "T2", "T4", "T3", "T5"], 22 dragTarget: "T4", 23 expectedOrder: ["T1", "T2", "T4", "T3", "E1", "T5"], 24 }, 25 { 26 description: "Test for drag a tab to right with hidden tab", 27 preferenceOrder: ["T1", "T2", "T3", "E1", "T4", "T5"], 28 currentTabsOrder: ["T1", "T3", "T4", "T2", "T5"], 29 dragTarget: "T2", 30 expectedOrder: ["T1", "T3", "E1", "T4", "T2", "T5"], 31 }, 32 { 33 description: 34 "Test for drag a tab to left end in case hidden tab was left end", 35 preferenceOrder: ["E1", "T1", "T2", "T3", "T4", "T5"], 36 currentTabsOrder: ["T4", "T1", "T2", "T3", "T5"], 37 dragTarget: "T4", 38 expectedOrder: ["E1", "T4", "T1", "T2", "T3", "T5"], 39 }, 40 { 41 description: 42 "Test for drag a tab to right end in case hidden tab was right end", 43 preferenceOrder: ["T1", "T2", "T3", "T4", "T5", "E1"], 44 currentTabsOrder: ["T2", "T3", "T4", "T5", "T1"], 45 dragTarget: "T1", 46 expectedOrder: ["T2", "T3", "T4", "T5", "E1", "T1"], 47 }, 48 { 49 description: "Test for multiple hidden tabs", 50 preferenceOrder: ["T1", "T2", "E1", "E2", "E3", "E4"], 51 currentTabsOrder: ["T2", "T1"], 52 dragTarget: "T1", 53 expectedOrder: ["T2", "E1", "E2", "E3", "E4", "T1"], 54 }, 55 ]; 56 57 function run_test() { 58 const { 59 toAbsoluteOrder, 60 } = require("resource://devtools/client/framework/toolbox-tabs-order-manager.js"); 61 62 for (const { 63 description, 64 preferenceOrder, 65 currentTabsOrder, 66 dragTarget, 67 expectedOrder, 68 } of TEST_DATA) { 69 info(description); 70 const resultOrder = toAbsoluteOrder( 71 preferenceOrder, 72 currentTabsOrder, 73 dragTarget 74 ); 75 equal( 76 resultOrder.join(","), 77 expectedOrder.join(","), 78 "Result should be correct" 79 ); 80 } 81 }