diff --git a/packages/blockly/tests/mocha/aria_test.js b/packages/blockly/tests/mocha/aria_test.js index b68954a06da..ab8e76e8b36 100644 --- a/packages/blockly/tests/mocha/aria_test.js +++ b/packages/blockly/tests/mocha/aria_test.js @@ -7,6 +7,7 @@ import {getInputLabelsSubset} from '#core/block_aria_composer.js'; import {assert} from 'chai'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -28,7 +29,10 @@ suite('ARIA', function () { }, ]); const toolbox = document.getElementById('toolbox-categories'); - this.workspace = Blockly.inject('blocklyDiv', {toolbox}); + this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, + toolbox, + }); this.liveRegion = document.getElementById('blocklyAriaAnnounce'); }); diff --git a/packages/blockly/tests/mocha/block_test.js b/packages/blockly/tests/mocha/block_test.js index d7c4dd99bda..7888e63f58a 100644 --- a/packages/blockly/tests/mocha/block_test.js +++ b/packages/blockly/tests/mocha/block_test.js @@ -19,6 +19,7 @@ import { } from './test_helpers/events.js'; import {MockBubbleIcon, MockIcon} from './test_helpers/icon_mocks.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, workspaceTeardown, @@ -479,7 +480,7 @@ suite('Blocks', function () { suite('Disposing selected shadow block', function () { setup(function () { - this.workspace = Blockly.inject('blocklyDiv'); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); this.parentBlock = this.workspace.newBlock('row_block'); this.parentBlock.initSvg(); this.parentBlock.render(); @@ -579,7 +580,7 @@ suite('Blocks', function () { suite('Connection Tracking', function () { setup(function () { - this.workspace = Blockly.inject('blocklyDiv'); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); this.getInputs = function () { return this.workspace.connectionDBList[ConnectionType.INPUT_VALUE] @@ -1401,6 +1402,7 @@ suite('Blocks', function () { suite('Rendered', function () { setup(function () { this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, comments: true, scrollbars: true, }); @@ -1491,7 +1493,7 @@ suite('Blocks', function () { } setup(function () { - this.workspace = Blockly.inject('blocklyDiv', {}); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); this.block = this.workspace.newBlock('stack_block'); this.block.initSvg(); @@ -1555,7 +1557,7 @@ suite('Blocks', function () { suite('Getting/Setting Field (Values)', function () { setup(function () { - this.workspace = Blockly.inject('blocklyDiv'); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); this.block = Blockly.Xml.domToBlock( Blockly.utils.xml.textToDom( 'test', @@ -1664,7 +1666,7 @@ suite('Blocks', function () { suite('Adding icons', function () { setup(function () { - this.workspace = Blockly.inject('blocklyDiv', {}); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); this.block = this.workspace.newBlock('stack_block'); this.block.initSvg(); @@ -1706,7 +1708,7 @@ suite('Blocks', function () { suite('Removing icons', function () { setup(function () { - this.workspace = Blockly.inject('blocklyDiv'); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); this.block = this.workspace.newBlock('stack_block'); this.block.initSvg(); @@ -1806,7 +1808,7 @@ suite('Blocks', function () { suite('Warning icons', function () { setup(function () { - this.workspace = Blockly.inject('blocklyDiv'); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); this.block = this.workspace.newBlock('stack_block'); this.block.initSvg(); @@ -1952,7 +1954,7 @@ suite('Blocks', function () { suite('Warning icons and collapsing', function () { setup(function () { - this.workspace = Blockly.inject('blocklyDiv'); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); this.parentBlock = Blockly.serialization.blocks.append( { 'type': 'statement_block', @@ -2025,7 +2027,7 @@ suite('Blocks', function () { suite('Bubbles and collapsing', function () { setup(function () { - this.workspace = Blockly.inject('blocklyDiv'); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); }); teardown(function () { @@ -2145,7 +2147,7 @@ suite('Blocks', function () { setup(function () { eventUtils.disable(); // We need a visible workspace. - this.workspace = Blockly.inject('blocklyDiv', {}); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); Blockly.defineBlocksWithJsonArray([ { 'type': 'variable_block', @@ -2724,7 +2726,7 @@ suite('Blocks', function () { }); suite('Rendered', function () { setup(function () { - this.workspace = Blockly.inject('blocklyDiv', {}); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); this.block = Blockly.Xml.domToBlock( Blockly.utils.xml.textToDom(''), this.workspace, @@ -2957,7 +2959,7 @@ suite('Blocks', function () { suite('Dragging', function () { setup(function () { - this.workspace = Blockly.inject('blocklyDiv'); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); this.blocks = createTestBlocks(this.workspace, false); for (const block of Object.values(this.blocks)) { block.initSvg(); @@ -3003,7 +3005,7 @@ suite('Blocks', function () { suite('Disposal focus management', function () { setup(function () { - this.workspace = Blockly.inject('blocklyDiv'); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); const firstBlock = this.workspace.newBlock('stack_block'); firstBlock.moveBy(-500, -500); }); diff --git a/packages/blockly/tests/mocha/blocks/loops_test.js b/packages/blockly/tests/mocha/blocks/loops_test.js index ebc0ad0bc6a..1f1491e67ad 100644 --- a/packages/blockly/tests/mocha/blocks/loops_test.js +++ b/packages/blockly/tests/mocha/blocks/loops_test.js @@ -7,6 +7,7 @@ import * as Blockly from '#core/blockly.js'; import {assert} from 'chai'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from '../test_helpers/setup_teardown.js'; @@ -14,7 +15,7 @@ import { suite('Loops', function () { setup(function () { sharedTestSetup.call(this, {fireEventsNow: false}); - this.workspace = Blockly.inject('blocklyDiv', {}); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); }); teardown(function () { diff --git a/packages/blockly/tests/mocha/blocks/procedures_test.js b/packages/blockly/tests/mocha/blocks/procedures_test.js index 87ce1478134..a43b3c1e5cd 100644 --- a/packages/blockly/tests/mocha/blocks/procedures_test.js +++ b/packages/blockly/tests/mocha/blocks/procedures_test.js @@ -17,6 +17,7 @@ import { import {runSerializationTestSuite} from '../test_helpers/serialization.js'; import { createGenUidStubWithReturns, + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, workspaceTeardown, @@ -25,7 +26,7 @@ import { suite('Procedures', function () { setup(function () { sharedTestSetup.call(this, {fireEventsNow: false}); - this.workspace = Blockly.inject('blocklyDiv', {}); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); this.workspace .getVariableMap() .createVariable('preCreatedVar', '', 'preCreatedVarId'); diff --git a/packages/blockly/tests/mocha/clipboard_test.js b/packages/blockly/tests/mocha/clipboard_test.js index cbba541fc19..56dba56e1eb 100644 --- a/packages/blockly/tests/mocha/clipboard_test.js +++ b/packages/blockly/tests/mocha/clipboard_test.js @@ -10,6 +10,7 @@ import { createChangeListenerSpy, } from './test_helpers/events.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -17,7 +18,7 @@ import { suite('Clipboard', function () { setup(function () { this.clock = sharedTestSetup.call(this, {fireEventsNow: false}).clock; - this.workspace = Blockly.inject('blocklyDiv'); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); }); teardown(function () { @@ -159,7 +160,10 @@ suite('Clipboard', function () { test('pasted blocks are bumped to not overlap in RTL', function () { this.workspace.dispose(); - this.workspace = Blockly.inject('blocklyDiv', {rtl: true}); + this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, + rtl: true, + }); const block = Blockly.serialization.blocks.append( { 'type': 'controls_if', @@ -182,7 +186,7 @@ suite('Clipboard', function () { // Restore an LTR workspace. this.workspace.dispose(); - this.workspace = Blockly.inject('blocklyDiv'); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); }); test('pasted blocks are bumped to be outside the connection snap radius', function () { @@ -239,7 +243,10 @@ suite('Clipboard', function () { test('pasted comments are bumped to not overlap in RTL', function () { this.workspace.dispose(); - this.workspace = Blockly.inject('blocklyDiv', {rtl: true}); + this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, + rtl: true, + }); Blockly.Xml.domToWorkspace( Blockly.utils.xml.textToDom( '', @@ -257,7 +264,7 @@ suite('Clipboard', function () { ); // Restore an LTR workspace. this.workspace.dispose(); - this.workspace = Blockly.inject('blocklyDiv'); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); }); }); }); diff --git a/packages/blockly/tests/mocha/comment_deserialization_test.js b/packages/blockly/tests/mocha/comment_deserialization_test.js index e4a1dc6dae9..bd21698d563 100644 --- a/packages/blockly/tests/mocha/comment_deserialization_test.js +++ b/packages/blockly/tests/mocha/comment_deserialization_test.js @@ -6,6 +6,7 @@ import {assert} from 'chai'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -31,6 +32,7 @@ suite('Comment Deserialization', function () { `; this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, comments: true, scrollbars: true, trashcan: true, diff --git a/packages/blockly/tests/mocha/comment_test.js b/packages/blockly/tests/mocha/comment_test.js index feab6bda14f..185ed46d302 100644 --- a/packages/blockly/tests/mocha/comment_test.js +++ b/packages/blockly/tests/mocha/comment_test.js @@ -8,6 +8,7 @@ import {EventType} from '#core/events/type.js'; import {assert} from 'chai'; import {assertEventFired} from './test_helpers/events.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -23,6 +24,7 @@ suite('Comments', function () { }, ]); this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, comments: true, scrollbars: true, }); diff --git a/packages/blockly/tests/mocha/comment_view_test.js b/packages/blockly/tests/mocha/comment_view_test.js index 068649c77f1..5d58b757af4 100644 --- a/packages/blockly/tests/mocha/comment_view_test.js +++ b/packages/blockly/tests/mocha/comment_view_test.js @@ -6,6 +6,7 @@ import {assert} from 'chai'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -13,7 +14,7 @@ import { suite('Workspace comment', function () { setup(function () { sharedTestSetup.call(this); - this.workspace = new Blockly.inject('blocklyDiv', {}); + this.workspace = new Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); this.commentView = new Blockly.comments.CommentView(this.workspace); }); diff --git a/packages/blockly/tests/mocha/connection_checker_test.js b/packages/blockly/tests/mocha/connection_checker_test.js index 3c50dd03d76..6bc5f56e059 100644 --- a/packages/blockly/tests/mocha/connection_checker_test.js +++ b/packages/blockly/tests/mocha/connection_checker_test.js @@ -7,6 +7,7 @@ import {ConnectionType} from '#core/connection_type.js'; import {assert} from 'chai'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -515,7 +516,7 @@ suite('Connection checker', function () { suite('Dragging Checks', function () { suite('Stacks', function () { setup(function () { - this.workspace = Blockly.inject('blocklyDiv'); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); // Load in three blocks: A and B are connected (next/prev); B is unmovable. Blockly.Xml.domToWorkspace( Blockly.utils.xml @@ -626,7 +627,7 @@ suite('Connection checker', function () { }); suite('Rows', function () { setup(function () { - this.workspace = Blockly.inject('blocklyDiv'); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); // Load 3 blocks: A and B are connected (input/output); B is unmovable. Blockly.Xml.domToWorkspace( Blockly.utils.xml diff --git a/packages/blockly/tests/mocha/connection_test.js b/packages/blockly/tests/mocha/connection_test.js index 5931d87ef42..273ffe2230a 100644 --- a/packages/blockly/tests/mocha/connection_test.js +++ b/packages/blockly/tests/mocha/connection_test.js @@ -12,6 +12,7 @@ import { } from './test_helpers/block_definitions.js'; import { createGenUidStubWithReturns, + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, workspaceTeardown, @@ -101,7 +102,7 @@ suite('Connection', function () { { title: 'Rendered', createWorkspace: () => { - return Blockly.inject('blocklyDiv'); + return Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); }, }, { diff --git a/packages/blockly/tests/mocha/contextmenu_items_test.js b/packages/blockly/tests/mocha/contextmenu_items_test.js index 8021252f9a5..b047f887f6c 100644 --- a/packages/blockly/tests/mocha/contextmenu_items_test.js +++ b/packages/blockly/tests/mocha/contextmenu_items_test.js @@ -6,6 +6,7 @@ import {assert} from 'chai'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, workspaceTeardown, @@ -17,7 +18,10 @@ suite('Context Menu Items', function () { // Creates a WorkspaceSVG const toolbox = document.getElementById('toolbox-categories'); - this.workspace = Blockly.inject('blocklyDiv', {toolbox: toolbox}); + this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, + toolbox: toolbox, + }); this.registry = Blockly.ContextMenuRegistry.registry; this.registry.reset(); diff --git a/packages/blockly/tests/mocha/contextmenu_test.js b/packages/blockly/tests/mocha/contextmenu_test.js index 3aa2ce5fcca..6dd7c359b15 100644 --- a/packages/blockly/tests/mocha/contextmenu_test.js +++ b/packages/blockly/tests/mocha/contextmenu_test.js @@ -12,6 +12,7 @@ import { defineStackBlock, } from './test_helpers/block_definitions.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -22,7 +23,10 @@ suite('Context Menu', function () { // Creates a WorkspaceSVG const toolbox = document.getElementById('toolbox-categories'); - this.workspace = Blockly.inject('blocklyDiv', {toolbox: toolbox}); + this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, + toolbox: toolbox, + }); }); teardown(function () { diff --git a/packages/blockly/tests/mocha/dialog_test.js b/packages/blockly/tests/mocha/dialog_test.js index 7ade12362ce..3bc8dc5d7b8 100644 --- a/packages/blockly/tests/mocha/dialog_test.js +++ b/packages/blockly/tests/mocha/dialog_test.js @@ -6,6 +6,7 @@ import {assert} from 'chai'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -13,7 +14,7 @@ import { suite('Dialog utilities', function () { setup(function () { sharedTestSetup.call(this); - this.workspace = Blockly.inject('blocklyDiv', {}); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); }); teardown(function () { diff --git a/packages/blockly/tests/mocha/dropdowndiv_test.js b/packages/blockly/tests/mocha/dropdowndiv_test.js index 2f1c3b9a993..0dd2f8af83f 100644 --- a/packages/blockly/tests/mocha/dropdowndiv_test.js +++ b/packages/blockly/tests/mocha/dropdowndiv_test.js @@ -8,6 +8,7 @@ import {Rect} from '#core/utils/rect.js'; import * as style from '#core/utils/style.js'; import {assert} from 'chai'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -16,7 +17,7 @@ suite('DropDownDiv', function () { setup(function () { sharedTestSetup.call(this); Blockly.common.setParentContainer(document.firstElementChild); - this.workspace = Blockly.inject('blocklyDiv'); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); this.setUpBlockWithField = function () { const blockJson = { 'type': 'text', @@ -150,7 +151,7 @@ suite('DropDownDiv', function () { width: 100, height: 100, }); - this.workspace = Blockly.inject('blocklyDiv', {}); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); }); teardown(function () { this.boundsStub.restore(); diff --git a/packages/blockly/tests/mocha/event_selected_test.js b/packages/blockly/tests/mocha/event_selected_test.js index b0c4d1d4130..2cb0b5af5b1 100644 --- a/packages/blockly/tests/mocha/event_selected_test.js +++ b/packages/blockly/tests/mocha/event_selected_test.js @@ -8,6 +8,7 @@ import {assert} from 'chai'; import {defineRowBlock} from './test_helpers/block_definitions.js'; import {createChangeListenerSpy} from './test_helpers/events.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -16,7 +17,7 @@ suite('Selected Event', function () { setup(function () { sharedTestSetup.call(this, {fireEventsNow: false}); defineRowBlock(); - this.workspace = new Blockly.inject('blocklyDiv', {}); + this.workspace = new Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); this.eventSpy = createChangeListenerSpy(this.workspace); }); diff --git a/packages/blockly/tests/mocha/event_test.js b/packages/blockly/tests/mocha/event_test.js index eb43b099deb..6fa03d1c1a1 100644 --- a/packages/blockly/tests/mocha/event_test.js +++ b/packages/blockly/tests/mocha/event_test.js @@ -14,6 +14,7 @@ import { } from './test_helpers/events.js'; import { createGenUidStubWithReturns, + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, workspaceTeardown, @@ -1367,7 +1368,10 @@ suite('Events', function () { let workspaceSvg; try { const toolbox = document.getElementById('toolbox-categories'); - workspaceSvg = Blockly.inject('blocklyDiv', {toolbox: toolbox}); + workspaceSvg = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, + toolbox: toolbox, + }); const TEST_BLOCK_ID = 'test_block_id'; const genUidStub = createGenUidStubWithReturns([ TEST_BLOCK_ID, @@ -1530,7 +1534,10 @@ suite('Events', function () { setup(function () { // disableOrphans needs a WorkspaceSVG const toolbox = document.getElementById('toolbox-categories'); - this.workspace = Blockly.inject('blocklyDiv', {toolbox: toolbox}); + this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, + toolbox: toolbox, + }); }); teardown(function () { workspaceTeardown.call(this, this.workspace); diff --git a/packages/blockly/tests/mocha/event_toolbox_item_select_test.js b/packages/blockly/tests/mocha/event_toolbox_item_select_test.js index 5bbb879e304..3541952a0cc 100644 --- a/packages/blockly/tests/mocha/event_toolbox_item_select_test.js +++ b/packages/blockly/tests/mocha/event_toolbox_item_select_test.js @@ -6,6 +6,7 @@ import {assert} from 'chai'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -14,6 +15,7 @@ suite('Toolbox Item Select Event', function () { setup(function () { sharedTestSetup.call(this); this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, toolbox: { 'kind': 'categoryToolbox', 'contents': [ diff --git a/packages/blockly/tests/mocha/field_checkbox_test.js b/packages/blockly/tests/mocha/field_checkbox_test.js index e432ecd73f4..721d1aa2251 100644 --- a/packages/blockly/tests/mocha/field_checkbox_test.js +++ b/packages/blockly/tests/mocha/field_checkbox_test.js @@ -14,6 +14,7 @@ import { runSetValueTests, } from './test_helpers/fields.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, workspaceTeardown, @@ -297,6 +298,7 @@ suite('Checkbox Fields', function () { suite('ARIA', function () { setup(function () { this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, renderer: 'geras', }); this.block = this.workspace.newBlock('test_fields_checkbox'); diff --git a/packages/blockly/tests/mocha/field_dropdown_test.js b/packages/blockly/tests/mocha/field_dropdown_test.js index 20f77c7e69a..4bcc26d0cdc 100644 --- a/packages/blockly/tests/mocha/field_dropdown_test.js +++ b/packages/blockly/tests/mocha/field_dropdown_test.js @@ -17,6 +17,7 @@ import { runSetValueTests, } from './test_helpers/fields.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, workspaceTeardown, @@ -329,6 +330,7 @@ suite('Dropdown Fields', function () { suite('ARIA', function () { setup(function () { this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, renderer: 'geras', }); }); @@ -583,6 +585,7 @@ suite('Dropdown Fields', function () { suite('Full block fields', function () { setup(function () { this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, renderer: 'zelos', }); this.block = this.workspace.newBlock('variables_get'); diff --git a/packages/blockly/tests/mocha/field_image_test.js b/packages/blockly/tests/mocha/field_image_test.js index 83d867a9e15..0ffd678b557 100644 --- a/packages/blockly/tests/mocha/field_image_test.js +++ b/packages/blockly/tests/mocha/field_image_test.js @@ -13,6 +13,7 @@ import { runSetValueTests, } from './test_helpers/fields.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -20,7 +21,7 @@ import { suite('Image Fields', function () { setup(function () { sharedTestSetup.call(this); - this.workspace = Blockly.inject('blocklyDiv'); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); }); teardown(function () { sharedTestTeardown.call(this); @@ -359,6 +360,7 @@ suite('Image Fields', function () { suite('ARIA', function () { setup(function () { this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, renderer: 'geras', }); }); diff --git a/packages/blockly/tests/mocha/field_label_test.js b/packages/blockly/tests/mocha/field_label_test.js index 586efeb857e..485dd0c0583 100644 --- a/packages/blockly/tests/mocha/field_label_test.js +++ b/packages/blockly/tests/mocha/field_label_test.js @@ -14,6 +14,7 @@ import { runSetValueTests, } from './test_helpers/fields.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -227,6 +228,7 @@ suite('Label Fields', function () { suite('ARIA', function () { test('Is hidden', function () { const workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, renderer: 'geras', }); const block = workspace.newBlock('text_print'); diff --git a/packages/blockly/tests/mocha/field_number_test.js b/packages/blockly/tests/mocha/field_number_test.js index 3f21f93612e..ce5649b214f 100644 --- a/packages/blockly/tests/mocha/field_number_test.js +++ b/packages/blockly/tests/mocha/field_number_test.js @@ -15,6 +15,7 @@ import { runSetValueTests, } from './test_helpers/fields.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, workspaceTeardown, @@ -505,6 +506,7 @@ suite('Number Fields', function () { suite('ARIA', function () { setup(function () { this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, renderer: 'geras', }); this.block = this.workspace.newBlock('math_number'); @@ -596,6 +598,7 @@ suite('Number Fields', function () { suite('Full block fields', function () { setup(function () { this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, renderer: 'zelos', }); this.block = this.workspace.newBlock('math_number'); diff --git a/packages/blockly/tests/mocha/field_textinput_test.js b/packages/blockly/tests/mocha/field_textinput_test.js index 2dd3a87df77..36612146831 100644 --- a/packages/blockly/tests/mocha/field_textinput_test.js +++ b/packages/blockly/tests/mocha/field_textinput_test.js @@ -17,6 +17,7 @@ import { runSetValueTests, } from './test_helpers/fields.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, workspaceTeardown, @@ -347,6 +348,7 @@ suite('Text Input Fields', function () { suite('Geras theme', function () { setup(function () { this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, renderer: 'geras', }); Blockly.serialization.blocks.append(this.blockJson, this.workspace); @@ -540,6 +542,7 @@ suite('Text Input Fields', function () { suite('Zelos theme', function () { setup(function () { this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, renderer: 'zelos', }); Blockly.serialization.blocks.append(this.blockJson, this.workspace); @@ -623,6 +626,7 @@ suite('Text Input Fields', function () { suite('ARIA', function () { setup(function () { this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, renderer: 'geras', }); this.block = this.workspace.newBlock('text'); diff --git a/packages/blockly/tests/mocha/field_variable_test.js b/packages/blockly/tests/mocha/field_variable_test.js index 13f22edc2ed..a6129c13a5b 100644 --- a/packages/blockly/tests/mocha/field_variable_test.js +++ b/packages/blockly/tests/mocha/field_variable_test.js @@ -18,6 +18,7 @@ import { } from './test_helpers/fields.js'; import { createGenUidStubWithReturns, + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, workspaceTeardown, @@ -652,6 +653,7 @@ suite('Variable Fields', function () { suite('ARIA', function () { setup(function () { this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, renderer: 'geras', }); this.block = this.workspace.newBlock('variables_set'); diff --git a/packages/blockly/tests/mocha/flyout_test.js b/packages/blockly/tests/mocha/flyout_test.js index e0e50b1ceb8..25ba5ed7ca4 100644 --- a/packages/blockly/tests/mocha/flyout_test.js +++ b/packages/blockly/tests/mocha/flyout_test.js @@ -6,6 +6,7 @@ import {assert} from 'chai'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, workspaceTeardown, @@ -34,6 +35,7 @@ suite('Flyout', function () { ]); this.toolboxXml = document.getElementById('toolbox-simple'); this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, toolbox: this.toolboxXml, }); }); @@ -106,6 +108,7 @@ suite('Flyout', function () { setup(function () { const toolbox = document.getElementById('toolbox-categories'); this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, toolbox: toolbox, }); this.flyout = this.workspace.getToolbox().getFlyout(); @@ -194,6 +197,7 @@ suite('Flyout', function () { suite('horizontal flyout', function () { setup(function () { this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, toolbox: this.toolboxXml, horizontalLayout: true, }); @@ -242,6 +246,7 @@ suite('Flyout', function () { setup(function () { const toolbox = document.getElementById('toolbox-categories'); this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, toolbox: toolbox, horizontalLayout: true, }); diff --git a/packages/blockly/tests/mocha/gesture_test.js b/packages/blockly/tests/mocha/gesture_test.js index 648f5754caa..00c02570c86 100644 --- a/packages/blockly/tests/mocha/gesture_test.js +++ b/packages/blockly/tests/mocha/gesture_test.js @@ -9,6 +9,7 @@ import {assert} from 'chai'; import {defineBasicBlockWithField} from './test_helpers/block_definitions.js'; import {assertEventFired, assertEventNotFired} from './test_helpers/events.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -60,7 +61,10 @@ suite('Gesture', function () { 'kind': 'block', 'type': 'test_field_block', }); - this.workspace = Blockly.inject('blocklyDiv', {toolbox}); + this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, + toolbox, + }); }); teardown(function () { diff --git a/packages/blockly/tests/mocha/icon_test.js b/packages/blockly/tests/mocha/icon_test.js index 43c87338fd7..de4d8e0d769 100644 --- a/packages/blockly/tests/mocha/icon_test.js +++ b/packages/blockly/tests/mocha/icon_test.js @@ -9,6 +9,7 @@ import {assert} from 'chai'; import {defineEmptyBlock} from './test_helpers/block_definitions.js'; import {MockIcon, MockSerializableIcon} from './test_helpers/icon_mocks.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -391,7 +392,7 @@ suite('Icon', function () { suite('Contextual menus', function () { setup(function () { Blockly.common.setParentContainer(document.firstElementChild); - this.workspace = Blockly.inject('blocklyDiv', {}); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); Blockly.icons.registry.register( new Blockly.icons.IconType('test'), TestIcon, diff --git a/packages/blockly/tests/mocha/input_test.js b/packages/blockly/tests/mocha/input_test.js index e27e6f7f3e4..9d7ff1daad0 100644 --- a/packages/blockly/tests/mocha/input_test.js +++ b/packages/blockly/tests/mocha/input_test.js @@ -7,6 +7,7 @@ import {assert} from 'chai'; import {createRenderedBlock} from './test_helpers/block_definitions.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -22,7 +23,7 @@ suite('Inputs', function () { }, ]); - this.workspace = Blockly.inject('blocklyDiv'); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); this.block = Blockly.Xml.domToBlock( Blockly.utils.xml.textToDom(''), this.workspace, diff --git a/packages/blockly/tests/mocha/insertion_marker_test.js b/packages/blockly/tests/mocha/insertion_marker_test.js index 7af89a92999..cfcd916ab20 100644 --- a/packages/blockly/tests/mocha/insertion_marker_test.js +++ b/packages/blockly/tests/mocha/insertion_marker_test.js @@ -6,6 +6,7 @@ import {assert} from 'chai'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -13,7 +14,10 @@ import { suite('InsertionMarkers', function () { setup(function () { sharedTestSetup.call(this); - this.workspace = Blockly.inject('blocklyDiv', {renderer: 'geras'}); + this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, + renderer: 'geras', + }); Blockly.defineBlocksWithJsonArray([ { 'type': 'stack_block', diff --git a/packages/blockly/tests/mocha/keyboard_movement_test.js b/packages/blockly/tests/mocha/keyboard_movement_test.js index 029ae93f2a2..7e514d9e2f7 100644 --- a/packages/blockly/tests/mocha/keyboard_movement_test.js +++ b/packages/blockly/tests/mocha/keyboard_movement_test.js @@ -12,6 +12,7 @@ import { } from './test_helpers/move_test_blocks.js'; import {p5blocks} from './test_helpers/p5_blocks.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -40,7 +41,10 @@ suite('Keyboard-driven movement', function () { ], }; - this.workspace = Blockly.inject('blocklyDiv', {toolbox: toolbox}); + this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, + toolbox: toolbox, + }); Blockly.common.defineBlocks(p5blocks); Blockly.KeyboardMover.mover.setMoveDistance(20); }); @@ -1117,6 +1121,7 @@ suite('Keyboard-driven movement', function () { setup(function () { const toolbox = document.getElementById('toolbox-simple'); this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, toolbox: toolbox, renderer: renderer, }); diff --git a/packages/blockly/tests/mocha/keyboard_navigation_controller_test.js b/packages/blockly/tests/mocha/keyboard_navigation_controller_test.js index a021db94057..808eff438e7 100644 --- a/packages/blockly/tests/mocha/keyboard_navigation_controller_test.js +++ b/packages/blockly/tests/mocha/keyboard_navigation_controller_test.js @@ -6,6 +6,7 @@ import {assert} from 'chai'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -13,7 +14,7 @@ import { suite('Keyboard Navigation Controller', function () { setup(function () { sharedTestSetup.call(this); - this.workspace = Blockly.inject('blocklyDiv'); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); Blockly.keyboardNavigationController.setIsActive(false); }); diff --git a/packages/blockly/tests/mocha/keyboard_navigation_test.js b/packages/blockly/tests/mocha/keyboard_navigation_test.js index e5cffbc7f22..7eba9e6079e 100644 --- a/packages/blockly/tests/mocha/keyboard_navigation_test.js +++ b/packages/blockly/tests/mocha/keyboard_navigation_test.js @@ -9,6 +9,7 @@ import {assert} from 'chai'; import {navigationTestBlocks} from './test_helpers/navigation_test_blocks.js'; import {p5blocks} from './test_helpers/p5_blocks.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -132,6 +133,7 @@ suite('Keyboard navigation on Blocks', function () { sharedTestSetup.call(this); const toolbox = document.getElementById('toolbox-simple'); this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, toolbox: toolbox, renderer: 'zelos', }); @@ -407,6 +409,7 @@ suite('Keyboard navigation on Fields', function () { sharedTestSetup.call(this); const toolbox = document.getElementById('toolbox-simple'); this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, toolbox: toolbox, renderer: 'zelos', }); @@ -473,6 +476,7 @@ suite('Workspace comment navigation', function () { sharedTestSetup.call(this); const toolbox = document.getElementById('toolbox-simple'); this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, toolbox: toolbox, renderer: 'zelos', }); @@ -657,6 +661,7 @@ suite('Toolbox and flyout arrow navigation by layout', function () { ]); const toolbox = document.getElementById('toolbox-categories'); this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, toolbox, rtl: layout.rtl, horizontalLayout: layout.horizontalLayout, @@ -888,6 +893,7 @@ suite('Flyout heading navigation (H / Shift+H)', function () { // Build a flyout toolbox that mixes blocks and headings (labels) so we // can verify that the H shortcut jumps over non-heading items. this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, toolbox: { kind: 'flyoutToolbox', contents: [ @@ -1037,6 +1043,7 @@ suite('Flyout heading navigation with no headings', function () { }, ]); this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, toolbox: { kind: 'flyoutToolbox', contents: [ diff --git a/packages/blockly/tests/mocha/layering_test.js b/packages/blockly/tests/mocha/layering_test.js index abd388cfee4..b010ff278df 100644 --- a/packages/blockly/tests/mocha/layering_test.js +++ b/packages/blockly/tests/mocha/layering_test.js @@ -5,6 +5,7 @@ */ import {assert} from 'chai'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -12,7 +13,7 @@ import { suite('Layering', function () { setup(function () { sharedTestSetup.call(this); - this.workspace = Blockly.inject('blocklyDiv', {}); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); this.layerManager = this.workspace.getLayerManager(); }); diff --git a/packages/blockly/tests/mocha/mutator_test.js b/packages/blockly/tests/mocha/mutator_test.js index 9c0260196c3..3278af6b58b 100644 --- a/packages/blockly/tests/mocha/mutator_test.js +++ b/packages/blockly/tests/mocha/mutator_test.js @@ -11,6 +11,7 @@ import { } from './test_helpers/block_definitions.js'; import {assertEventFired, assertEventNotFired} from './test_helpers/events.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -22,7 +23,7 @@ suite('Mutator', function () { suite('Firing change event', function () { setup(function () { - this.workspace = Blockly.inject('blocklyDiv', {}); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); defineMutatorBlocks(); }); @@ -86,7 +87,7 @@ suite('Mutator', function () { }); suite('ARIA', function () { setup(async function () { - this.workspace = Blockly.inject('blocklyDiv', {}); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); const block = createRenderedBlock(this.workspace, 'controls_if'); this.icon = block.getIcon(Blockly.icons.MutatorIcon.TYPE); await this.icon.setBubbleVisible(true); diff --git a/packages/blockly/tests/mocha/navigation_test.js b/packages/blockly/tests/mocha/navigation_test.js index 003a6deb73d..9e6cd307d43 100644 --- a/packages/blockly/tests/mocha/navigation_test.js +++ b/packages/blockly/tests/mocha/navigation_test.js @@ -6,6 +6,7 @@ import {assert} from 'chai'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, workspaceTeardown, @@ -87,7 +88,7 @@ suite('Navigation', function () { ], }, ]); - this.workspace = Blockly.inject('blocklyDiv', {}); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); this.navigator = this.workspace.getNavigator(); const statementInput1 = this.workspace.newBlock('input_statement'); const statementInput2 = this.workspace.newBlock('input_statement'); @@ -703,7 +704,7 @@ suite('Navigation', function () { setup(function () { const container = document.createElement('div'); document.body.appendChild(container); - this.emptyWorkspace = Blockly.inject(container, {}); + this.emptyWorkspace = Blockly.inject(container, DEFAULT_INJECT_OPTIONS); }); teardown(function () { workspaceTeardown.call(this, this.emptyWorkspace); diff --git a/packages/blockly/tests/mocha/shortcut_items_test.js b/packages/blockly/tests/mocha/shortcut_items_test.js index 0077766d247..4ecbe93199b 100644 --- a/packages/blockly/tests/mocha/shortcut_items_test.js +++ b/packages/blockly/tests/mocha/shortcut_items_test.js @@ -11,6 +11,7 @@ import { defineStackBlock, } from './test_helpers/block_definitions.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -21,7 +22,11 @@ suite('Keyboard Shortcut Items', function () { sharedTestSetup.call(this); const toolbox = document.getElementById('toolbox-test'); // Zelos has full-block fields, which we want to exercise in tests. - this.workspace = Blockly.inject('blocklyDiv', {toolbox, renderer: 'zelos'}); + this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, + toolbox, + renderer: 'zelos', + }); this.injectionDiv = this.workspace.getInjectionDiv(); Blockly.ContextMenuRegistry.registry.reset(); Blockly.ContextMenuItems.registerDefaultOptions(); @@ -1570,6 +1575,7 @@ suite('Keyboard Shortcut Items', function () { test('Shows a toast with RTL navigation hints for navigable blocks', function () { const toolbox = document.getElementById('toolbox-test'); const ws = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, toolbox, renderer: 'zelos', rtl: true, @@ -1597,6 +1603,7 @@ suite('Keyboard Shortcut Items', function () { test('Shows a toast with navigation hints for flyout labels', function () { const ws = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, toolbox: { kind: 'flyoutToolbox', contents: [ diff --git a/packages/blockly/tests/mocha/test_helpers/setup_teardown.js b/packages/blockly/tests/mocha/test_helpers/setup_teardown.js index fce1ee2a2ff..b15bfeaef26 100644 --- a/packages/blockly/tests/mocha/test_helpers/setup_teardown.js +++ b/packages/blockly/tests/mocha/test_helpers/setup_teardown.js @@ -7,6 +7,25 @@ import * as eventUtils from '#core/events/utils.js'; import {FocusManager} from '#core/focus_manager.js'; +/** + * Path to Blockly's media directory, relative to the test harness page + * (tests/mocha/index.html). + * @type {string} + */ +const TEST_MEDIA_PATH = '../../media/'; + +/** + * Default options for Blockly.inject in tests. Media is loaded from the local + * checkout and sounds are disabled so that tests never fetch assets over the + * network. Spread this to add or override options, e.g. + * + * Blockly.inject('blocklyDiv', {...DEFAULT_INJECT_OPTIONS, rtl: true}); + */ +export const DEFAULT_INJECT_OPTIONS = Object.freeze({ + media: TEST_MEDIA_PATH, + sounds: false, +}); + /** * Safely disposes of Blockly workspace, logging any errors. * Assumes that sharedTestSetup has also been called. This should be called diff --git a/packages/blockly/tests/mocha/test_helpers/toolbox_definitions.js b/packages/blockly/tests/mocha/test_helpers/toolbox_definitions.js index 42de6cf2ec7..409ffd5d585 100644 --- a/packages/blockly/tests/mocha/test_helpers/toolbox_definitions.js +++ b/packages/blockly/tests/mocha/test_helpers/toolbox_definitions.js @@ -4,6 +4,8 @@ * SPDX-License-Identifier: Apache-2.0 */ +import {DEFAULT_INJECT_OPTIONS} from './setup_teardown.js'; + /** * Get JSON for a toolbox that contains categories. * @return {Blockly.utils.toolbox.ToolboxJson} The array holding information @@ -229,6 +231,7 @@ export function getInjectedToolbox() { */ const toolboxXml = document.getElementById('toolbox-test'); const workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, toolbox: toolboxXml, }); return workspace.getToolbox(); diff --git a/packages/blockly/tests/mocha/theme_test.js b/packages/blockly/tests/mocha/theme_test.js index 3a91dc294b7..7a9353b61b7 100644 --- a/packages/blockly/tests/mocha/theme_test.js +++ b/packages/blockly/tests/mocha/theme_test.js @@ -8,6 +8,7 @@ import {EventType} from '#core/events/type.js'; import {assert} from 'chai'; import {assertEventFired} from './test_helpers/events.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, workspaceTeardown, @@ -127,7 +128,7 @@ suite('Theme', function () { try { const blockStyles = createBlockStyles(); const theme = new Blockly.Theme('themeName', blockStyles); - workspace = Blockly.inject('blocklyDiv', {}); + workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); const blockA = workspace.newBlock('stack_block'); blockA.setStyle = function () { diff --git a/packages/blockly/tests/mocha/toast_test.js b/packages/blockly/tests/mocha/toast_test.js index 014d546df8b..b88fbca1f43 100644 --- a/packages/blockly/tests/mocha/toast_test.js +++ b/packages/blockly/tests/mocha/toast_test.js @@ -6,6 +6,7 @@ import {assert} from 'chai'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -13,7 +14,7 @@ import { suite('Toasts', function () { setup(function () { sharedTestSetup.call(this); - this.workspace = Blockly.inject('blocklyDiv', {}); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); this.liveRegion = document.getElementById('blocklyAriaAnnounce'); this.toastIsVisible = (message) => { const toast = this.workspace diff --git a/packages/blockly/tests/mocha/tooltip_test.js b/packages/blockly/tests/mocha/tooltip_test.js index 62464bbeb0a..5b9b19877c1 100644 --- a/packages/blockly/tests/mocha/tooltip_test.js +++ b/packages/blockly/tests/mocha/tooltip_test.js @@ -6,6 +6,7 @@ import {assert} from 'chai'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, workspaceTeardown, @@ -37,7 +38,10 @@ suite('Tooltip', function () { suite('Custom Tooltip', function () { setup(function () { - this.renderedWorkspace = Blockly.inject('blocklyDiv', {}); + this.renderedWorkspace = Blockly.inject( + 'blocklyDiv', + DEFAULT_INJECT_OPTIONS, + ); }); teardown(function () { @@ -145,7 +149,10 @@ suite('Tooltip', function () { suite('Rendered Blocks', function () { setup(function () { - this.renderedWorkspace = Blockly.inject('blocklyDiv'); + this.renderedWorkspace = Blockly.inject( + 'blocklyDiv', + DEFAULT_INJECT_OPTIONS, + ); this.block = this.renderedWorkspace.newBlock('test_block'); this.block.initSvg(); this.block.render(); @@ -227,7 +234,10 @@ suite('Tooltip', function () { suite('Rendered Fields', function () { setup(function () { - this.renderedWorkspace = Blockly.inject('blocklyDiv'); + this.renderedWorkspace = Blockly.inject( + 'blocklyDiv', + DEFAULT_INJECT_OPTIONS, + ); this.block = this.renderedWorkspace.newBlock('test_block'); this.block.initSvg(); this.block.render(); diff --git a/packages/blockly/tests/mocha/trashcan_test.js b/packages/blockly/tests/mocha/trashcan_test.js index 508d1feaeb5..df2ede37484 100644 --- a/packages/blockly/tests/mocha/trashcan_test.js +++ b/packages/blockly/tests/mocha/trashcan_test.js @@ -16,6 +16,7 @@ import { } from './test_helpers/block_definitions.js'; import {assertEventFired, assertEventNotFired} from './test_helpers/events.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -54,6 +55,7 @@ suite('Trashcan', function () { defineStackBlock('stack_block2'); defineMutatorBlocks(); this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, 'trashcan': true, 'maxTrashcanContents': Infinity, }); diff --git a/packages/blockly/tests/mocha/widget_div_test.js b/packages/blockly/tests/mocha/widget_div_test.js index 0d48264308b..33acc6e0c3d 100644 --- a/packages/blockly/tests/mocha/widget_div_test.js +++ b/packages/blockly/tests/mocha/widget_div_test.js @@ -6,6 +6,7 @@ import {assert} from 'chai'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -14,7 +15,7 @@ suite('WidgetDiv', function () { setup(function () { sharedTestSetup.call(this); Blockly.common.setParentContainer(document.firstElementChild); - this.workspace = Blockly.inject('blocklyDiv'); + this.workspace = Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); this.setUpBlockWithField = function () { const blockJson = { 'type': 'text', diff --git a/packages/blockly/tests/mocha/workspace_comment_test.js b/packages/blockly/tests/mocha/workspace_comment_test.js index ff1fcba3580..1e29ed0b500 100644 --- a/packages/blockly/tests/mocha/workspace_comment_test.js +++ b/packages/blockly/tests/mocha/workspace_comment_test.js @@ -10,6 +10,7 @@ import { createChangeListenerSpy, } from './test_helpers/events.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -17,7 +18,7 @@ import { suite('Workspace comment', function () { setup(function () { this.clock = sharedTestSetup.call(this, {fireEventsNow: false}).clock; - this.workspace = new Blockly.inject('blocklyDiv', {}); + this.workspace = new Blockly.inject('blocklyDiv', DEFAULT_INJECT_OPTIONS); }); teardown(function () { diff --git a/packages/blockly/tests/mocha/workspace_svg_test.js b/packages/blockly/tests/mocha/workspace_svg_test.js index 75d15f61b1c..fc23e884bd9 100644 --- a/packages/blockly/tests/mocha/workspace_svg_test.js +++ b/packages/blockly/tests/mocha/workspace_svg_test.js @@ -13,6 +13,7 @@ import { createChangeListenerSpy, } from './test_helpers/events.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -23,7 +24,10 @@ suite('WorkspaceSvg', function () { setup(function () { this.clock = sharedTestSetup.call(this, {fireEventsNow: false}).clock; const toolbox = document.getElementById('toolbox-categories'); - this.workspace = Blockly.inject('blocklyDiv', {toolbox: toolbox}); + this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, + toolbox: toolbox, + }); Blockly.defineBlocksWithJsonArray([ { 'type': 'simple_test_block', diff --git a/packages/blockly/tests/mocha/xml_test.js b/packages/blockly/tests/mocha/xml_test.js index 0741fa09878..6a4767aff8b 100644 --- a/packages/blockly/tests/mocha/xml_test.js +++ b/packages/blockly/tests/mocha/xml_test.js @@ -8,6 +8,7 @@ import {assert} from 'chai'; import { addBlockTypeToCleanup, createGenUidStubWithReturns, + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, workspaceTeardown, @@ -368,7 +369,10 @@ suite('XML', function () { suite('Rendered', function () { setup(function () { // Let the parent teardown dispose of it. - this.workspace = Blockly.inject('blocklyDiv', {comments: true}); + this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, + comments: true, + }); this.block = Blockly.Xml.domToBlock( Blockly.utils.xml.textToDom(''), this.workspace, @@ -616,7 +620,10 @@ suite('XML', function () { }); suite('Rendered', function () { setup(function () { - this.workspace = Blockly.inject('blocklyDiv', {comments: true}); + this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, + comments: true, + }); }); teardown(function () { workspaceTeardown.call(this, this.workspace); @@ -894,9 +901,7 @@ suite('XML', function () { }); suite('workspaceToDom -> domToWorkspace -> workspaceToDom', function () { setup(function () { - const options = { - comments: true, - }; + const options = {...DEFAULT_INJECT_OPTIONS, comments: true}; this.renderedWorkspace = Blockly.inject('blocklyDiv', options); this.headlessWorkspace = new Blockly.Workspace( new Blockly.Options(options), diff --git a/packages/blockly/tests/mocha/zoom_controls_test.js b/packages/blockly/tests/mocha/zoom_controls_test.js index 146f0fcbdaf..19cedca5287 100644 --- a/packages/blockly/tests/mocha/zoom_controls_test.js +++ b/packages/blockly/tests/mocha/zoom_controls_test.js @@ -8,6 +8,7 @@ import {EventType} from '#core/events/type.js'; import {assert} from 'chai'; import {assertEventFired, assertEventNotFired} from './test_helpers/events.js'; import { + DEFAULT_INJECT_OPTIONS, sharedTestSetup, sharedTestTeardown, } from './test_helpers/setup_teardown.js'; @@ -16,7 +17,10 @@ import {simulateClick} from './test_helpers/user_input.js'; suite('Zoom Controls', function () { setup(function () { sharedTestSetup.call(this); - this.workspace = Blockly.inject('blocklyDiv', {'zoom': {'controls': true}}); + this.workspace = Blockly.inject('blocklyDiv', { + ...DEFAULT_INJECT_OPTIONS, + 'zoom': {'controls': true}, + }); this.zoomControls = this.workspace.zoomControls_; }); teardown(function () { diff --git a/packages/plugins/block-shareable-procedures/test/procedure_blocks.mocha.js b/packages/plugins/block-shareable-procedures/test/procedure_blocks.mocha.js index c2e95b9eb65..055a5c14033 100644 --- a/packages/plugins/block-shareable-procedures/test/procedure_blocks.mocha.js +++ b/packages/plugins/block-shareable-procedures/test/procedure_blocks.mocha.js @@ -42,7 +42,10 @@ suite('Procedures', function () { registerProcedureSerializer(); - this.workspace = Blockly.inject('blocklyDiv', {}); + this.workspace = Blockly.inject('blocklyDiv', { + media: 'media/', + sounds: false, + }); this.eventSpy = this.sandbox.spy(); this.workspace.addChangeListener(this.eventSpy); diff --git a/packages/plugins/field-multilineinput/test/field_multilineinput_test.mocha.js b/packages/plugins/field-multilineinput/test/field_multilineinput_test.mocha.js index ce46e94d1a2..23e3f069551 100644 --- a/packages/plugins/field-multilineinput/test/field_multilineinput_test.mocha.js +++ b/packages/plugins/field-multilineinput/test/field_multilineinput_test.mocha.js @@ -164,7 +164,10 @@ suite('FieldMultilineInput', function () { this.clock = sinon.useFakeTimers(); window.requestAnimationFrame = (cb) => setTimeout(cb, 0); window.cancelAnimationFrame = (id) => clearTimeout(id); - this.workspace = Blockly.inject('blocklyDiv'); + this.workspace = Blockly.inject('blocklyDiv', { + media: 'media/', + sounds: false, + }); if (!Blockly.Blocks['multiline_block']) { Blockly.defineBlocksWithJsonArray([ diff --git a/packages/plugins/modal/test/modal_test.mocha.js b/packages/plugins/modal/test/modal_test.mocha.js index 8282af49d8d..fdbac20a768 100644 --- a/packages/plugins/modal/test/modal_test.mocha.js +++ b/packages/plugins/modal/test/modal_test.mocha.js @@ -20,7 +20,10 @@ suite('Modal', function () { this.jsdomCleanup = require('jsdom-global')( '
', ); - this.workspace = Blockly.inject('blocklyDiv', {}); + this.workspace = Blockly.inject('blocklyDiv', { + media: 'media/', + sounds: false, + }); this.modal = new Modal('Title', this.workspace); }); diff --git a/packages/plugins/shadow-block-converter/test/shadow_block_converter_test.mocha.js b/packages/plugins/shadow-block-converter/test/shadow_block_converter_test.mocha.js index b6a19ba562c..c3820cc6ccf 100644 --- a/packages/plugins/shadow-block-converter/test/shadow_block_converter_test.mocha.js +++ b/packages/plugins/shadow-block-converter/test/shadow_block_converter_test.mocha.js @@ -39,7 +39,10 @@ suite('shadowBlockConversionChangeListener', function () { // See https://github.com/RaspberryPiFoundation/blockly-samples/issues/2528 for context. global.SVGElement = window.SVGElement; - this.workspace = Blockly.inject('blocklyDiv'); + this.workspace = Blockly.inject('blocklyDiv', { + media: 'media/', + sounds: false, + }); this.workspace.addChangeListener(shadowBlockConversionChangeListener); // Prevent rendering, which does not work correctly in a headless jsdom diff --git a/packages/plugins/typed-variable-modal/test/typed_variable_modal_test.mocha.js b/packages/plugins/typed-variable-modal/test/typed_variable_modal_test.mocha.js index 4c9f45184bf..1a63cdca92c 100644 --- a/packages/plugins/typed-variable-modal/test/typed_variable_modal_test.mocha.js +++ b/packages/plugins/typed-variable-modal/test/typed_variable_modal_test.mocha.js @@ -24,7 +24,7 @@ suite('TypedVariableModal', function () { * @returns {Blockly.WorkspaceSvg} The workspace to use for testing. */ function workspaceSetup(toolbox, types) { - const options = {}; + const options = {media: 'media/', sounds: false}; const createFlyout = function (workspace) { let xmlList = []; const button = document.createElement('button'); diff --git a/packages/plugins/workspace-minimap/test/minimap_tests.mocha.js b/packages/plugins/workspace-minimap/test/minimap_tests.mocha.js index a40b9523b66..4d9bd5919e6 100644 --- a/packages/plugins/workspace-minimap/test/minimap_tests.mocha.js +++ b/packages/plugins/workspace-minimap/test/minimap_tests.mocha.js @@ -443,6 +443,8 @@ suite('Keyboard navigation', function () { // jsdom does not implement SVGElement natively; expose the shim. global.SVGElement = window.SVGElement; this.workspace = Blockly.inject('blocklyDiv', { + media: 'media/', + sounds: false, move: {scrollbars: true}, }); this.minimap = new Minimap(this.workspace); diff --git a/packages/plugins/workspace-search/test/workspace_search_test.mocha.js b/packages/plugins/workspace-search/test/workspace_search_test.mocha.js index 5ab7e35dc97..9ffb518ab7f 100644 --- a/packages/plugins/workspace-search/test/workspace_search_test.mocha.js +++ b/packages/plugins/workspace-search/test/workspace_search_test.mocha.js @@ -68,7 +68,10 @@ suite('WorkspaceSearch', function () { '
', ); this.clock = sinon.useFakeTimers(); - this.workspace = Blockly.inject('blocklyDiv'); + this.workspace = Blockly.inject('blocklyDiv', { + media: 'media/', + sounds: false, + }); this.workspaceSearch = new WorkspaceSearch(this.workspace); // See https://github.com/RaspberryPiFoundation/blockly-samples/issues/2528 for context. global.SVGElement = window.SVGElement;