Files
blockly/tests/mocha/index.html
John Nesky 9a0619aa2a fix: Drag and Resize events for workspace comments (#8217)
* feat: Added a comment_drag event.

* Add workspace comment resize events.

* Addressing PR feedback.

* Fixed chai imports in new test files.

* Addressing more PR feedback.
2024-06-26 12:16:56 -07:00

229 lines
7.9 KiB
HTML

<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Mocha Tests for Blockly</title>
<link href="../../node_modules/mocha/mocha.css" rel="stylesheet" />
</head>
<style>
#blocklyDiv {
height: 1000px;
position: fixed;
visibility: hidden;
width: 1000px;
}
</style>
<body>
<div id="mocha"></div>
<div id="failureCount" style="display: none" tests_failed="unset"></div>
<div id="failureMessages" style="display: none"></div>
<!-- Load mocha et al. before Blockly and the test modules so that
we can safely import the test modules that make calls
to (e.g.) suite() at the top level. -->
<script src="../../node_modules/mocha/mocha.js"></script>
<script src="../../node_modules/sinon/pkg/sinon.js"></script>
<script>
mocha.setup({
ui: 'tdd',
failZero: true,
});
</script>
<script type="module">
import {loadScript} from '../scripts/load.mjs';
// Load Blockly in uncompressed mode.
import * as Blockly from '../../build/blockly.loader.mjs';
import '../../build/blocks.loader.mjs';
import {javascriptGenerator} from '../../build/javascript.loader.mjs';
// Import tests.
import './astnode_test.js';
import './block_json_test.js';
import './block_test.js';
import './clipboard_test.js';
import './comment_test.js';
import './comment_deserialization_test.js';
import './connection_checker_test.js';
import './connection_db_test.js';
import './connection_test.js';
import './contextmenu_items_test.js';
import './contextmenu_test.js';
import './cursor_test.js';
import './dropdowndiv_test.js';
import './event_test.js';
import './event_block_change_test.js';
import './event_block_create_test.js';
import './event_block_delete_test.js';
import './event_block_drag_test.js';
import './event_block_field_intermediate_change_test.js';
import './event_block_move_test.js';
import './event_bubble_open_test.js';
import './event_click_test.js';
import './event_comment_change_test.js';
import './event_comment_collapse_test.js';
import './event_comment_create_test.js';
import './event_comment_delete_test.js';
import './event_comment_move_test.js';
import './event_comment_drag_test.js';
import './event_comment_resize_test.js';
import './event_marker_move_test.js';
import './event_selected_test.js';
import './event_theme_change_test.js';
import './event_toolbox_item_select_test.js';
import './event_trashcan_open_test.js';
import './event_var_create_test.js';
import './event_var_delete_test.js';
import './event_var_rename_test.js';
import './event_viewport_test.js';
import './extensions_test.js';
import './field_checkbox_test.js';
import './field_dropdown_test.js';
import './field_image_test.js';
import './field_label_serializable_test.js';
import './field_label_test.js';
import './field_number_test.js';
import './field_registry_test.js';
import './field_test.js';
import './field_textinput_test.js';
import './field_variable_test.js';
import './flyout_test.js';
import './generator_test.js';
import './gesture_test.js';
import './icon_test.js';
import './input_test.js';
import './insertion_marker_test.js';
import './insertion_marker_manager_test.js';
import './jso_deserialization_test.js';
import './jso_serialization_test.js';
import './json_test.js';
import './keydown_test.js';
import './layering_test.js';
import './blocks/lists_test.js';
import './blocks/logic_ternary_test.js';
import './blocks/loops_test.js';
import './metrics_test.js';
import './mutator_test.js';
import './names_test.js';
// TODO: Remove these tests.
import './old_workspace_comment_test.js';
import './procedure_map_test.js';
import './blocks/procedures_test.js';
import './registry_test.js';
import './render_management_test.js';
import './serializer_test.js';
import './shortcut_registry_test.js';
import './touch_test.js';
import './theme_test.js';
import './toolbox_test.js';
import './tooltip_test.js';
import './trashcan_test.js';
import './utils_test.js';
import './variable_map_test.js';
import './variable_model_test.js';
import './blocks/variables_test.js';
import './widget_div_test.js';
import './comment_view_test.js';
import './workspace_comment_test.js';
import './workspace_svg_test.js';
import './workspace_test.js';
import './xml_test.js';
import './zoom_controls_test.js';
// Make Blockly and generators available via global scope.
globalThis.Blockly = Blockly;
globalThis.javascriptGenerator = javascriptGenerator;
// Load additional scripts.
await loadScript('../../build/msg/en.js');
await loadScript('../playgrounds/screenshot.js');
await loadScript('../../node_modules/@blockly/dev-tools/dist/index.js');
let runner = mocha.run(function (failures) {
var failureDiv = document.getElementById('failureCount');
failureDiv.setAttribute('tests_failed', failures);
});
runner.on('fail', function (test, err) {
const msg = document.createElement('p');
msg.textContent = `"${test.fullTitle()}" failed: ${err.message}`;
const div = document.getElementById('failureMessages');
div.appendChild(msg);
});
</script>
<div id="blocklyDiv"></div>
<xml
xmlns="https://developers.google.com/blockly/xml"
id="toolbox-simple"
style="display: none">
<block type="logic_compare">
<field name="OP">NEQ</field>
<value name="A">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="B">
<block type="math_number">
<field name="NUM">2</field>
</block>
</value>
</block>
<sep gap="20"></sep>
<button text="insert" callbackkey="insertConnectionRows"></button>
<label text="tooltips"></label>
</xml>
<xml
xmlns="https://developers.google.com/blockly/xml"
id="toolbox-categories"
style="display: none">
<category name="First" css-container="something">
<block type="basic_block">
<field name="TEXT">FirstCategory-FirstBlock</field>
</block>
<block type="basic_block">
<field name="TEXT">FirstCategory-SecondBlock</field>
</block>
</category>
<category name="Second">
<block type="basic_block">
<field name="TEXT">SecondCategory-FirstBlock</field>
</block>
</category>
</xml>
<xml
xmlns="https://developers.google.com/blockly/xml"
id="toolbox-test"
style="display: none">
<category name="First" expanded="true" categorystyle="logic_category">
<sep gap="-1"></sep>
<button text="insert" callbackkey="insertConnectionRows"></button>
<block type="stack_block"></block>
<block type="stack_block"></block>
</category>
<category name="Second">
<block type="stack_block"></block>
</category>
<sep toolboxitemid="separator" gap="-1"></sep>
<category name="Variables" custom="VARIABLE"></category>
<category name="NestedCategory">
<category
toolboxitemid="nestedCategory"
name="NestedItemOne"></category>
</category>
<category name="lastItem"></category>
</xml>
<xml
xmlns="https://developers.google.com/blockly/xml"
id="gesture-test-toolbox"
style="display: none">
<block type="test_field_block"></block>
</xml>
</body>
</html>