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;