From 83425ee69019a7e301f919c1dc16df57a747381c Mon Sep 17 00:00:00 2001 From: Ray Schamp Date: Thu, 9 Mar 2017 13:08:38 -0500 Subject: [PATCH 1/3] Revert "Merge pull request #486 from rschamp/fix-filter-tests" This reverts commit ba00db897fe328f34e58ce39975c218059a68a94, reversing changes made to 739c5deb63ab749982c5648a056f0ba7b42c7537. --- test/fixtures/toolboxes.js | 223 ++++++++++++++++--------------- test/unit/util_filter-toolbox.js | 8 +- 2 files changed, 118 insertions(+), 113 deletions(-) diff --git a/test/fixtures/toolboxes.js b/test/fixtures/toolboxes.js index 5f74c89df04..e8efe6f9604 100644 --- a/test/fixtures/toolboxes.js +++ b/test/fixtures/toolboxes.js @@ -724,115 +724,120 @@ var categories = ''; -var simple = ''; -var empty = ''; +var simple = ''; +var empty = ''; module.exports = { categories: jsdom(categories).body.firstElementChild, simple: jsdom(simple).body.firstElementChild, diff --git a/test/unit/util_filter-toolbox.js b/test/unit/util_filter-toolbox.js index 9c3ea073c9c..4334b819d53 100644 --- a/test/unit/util_filter-toolbox.js +++ b/test/unit/util_filter-toolbox.js @@ -3,20 +3,20 @@ var test = require('tap').test; var filterToolbox = require('../../src/util/filter-toolbox'); test('categories', function (t) { - var filteredToolbox = filterToolbox(toolboxes.categories, ['motion_movesteps']); - t.strictEqual(filteredToolbox.children.length, 3); + var filteredToolbox = filterToolbox(toolboxes.categories, ['operator_random']); + t.strictEqual(filteredToolbox.children.length, 1); t.strictEqual(filteredToolbox.firstElementChild.children.length, 1); t.end(); }); test('simple', function (t) { - var filteredToolbox = filterToolbox(toolboxes.simple, ['motion_movesteps']); + var filteredToolbox = filterToolbox(toolboxes.simple, ['operator_random']); t.strictEqual(filteredToolbox.children.length, 1); t.end(); }); test('empty', function (t) { - var filteredToolbox = filterToolbox(toolboxes.empty, ['motion_movesteps']); + var filteredToolbox = filterToolbox(toolboxes.empty, ['operator_random']); t.strictEqual(filteredToolbox.children.length, 0); t.end(); }); From 82226a297945266e50ca10b4c547d9b14ae5bb71 Mon Sep 17 00:00:00 2001 From: Ray Schamp Date: Thu, 9 Mar 2017 13:08:47 -0500 Subject: [PATCH 2/3] Revert "Show Categories that use custom code to load (variables, procedures) (#483)" This reverts commit 739c5deb63ab749982c5648a056f0ba7b42c7537. --- src/util/filter-toolbox.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/util/filter-toolbox.js b/src/util/filter-toolbox.js index 54d59ced865..c4b18b41c86 100644 --- a/src/util/filter-toolbox.js +++ b/src/util/filter-toolbox.js @@ -38,11 +38,7 @@ var filterToolbox = function (toolbox, opcodes) { ) { if (category.nodeName.toLowerCase() !== 'category') continue; var filteredCategory = filterToolboxNode(category, opcodes); - if (filteredCategory.hasChildNodes() || - filteredCategory.hasAttribute('custom') - ) { - filteredToolbox.appendChild(filteredCategory); - } + if (filteredCategory.hasChildNodes()) filteredToolbox.appendChild(filteredCategory); } } else { filteredToolbox = filterToolboxNode(toolbox, opcodes); From fe69ccc00abb5f8731c1f37912b7aa0cb233fa4c Mon Sep 17 00:00:00 2001 From: Ray Schamp Date: Thu, 9 Mar 2017 13:08:57 -0500 Subject: [PATCH 3/3] Revert "Merge pull request #461 from rschamp/filter-toolbox" This reverts commit 343b5bfe8ecc6e497688dc33dd489ab6f8d230f6, reversing changes made to 370f2c6a47733dc3f54fac5a950be291e7042690. --- package.json | 1 - src/playground/playground.js | 5 - src/util/filter-toolbox.js | 49 -- src/virtual-machine.js | 14 - test/fixtures/.eslintrc.js | 5 - test/fixtures/toolboxes.js | 845 ------------------------------- test/unit/util_filter-toolbox.js | 22 - 7 files changed, 941 deletions(-) delete mode 100644 src/util/filter-toolbox.js delete mode 100644 test/fixtures/.eslintrc.js delete mode 100644 test/fixtures/toolboxes.js delete mode 100644 test/unit/util_filter-toolbox.js diff --git a/package.json b/package.json index 4418452f5e5..3ba71fb0dc4 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,6 @@ "gh-pages": "^0.12.0", "highlightjs": "^9.8.0", "htmlparser2": "3.9.2", - "jsdom": "^9.11.0", "json": "^9.0.4", "lodash.defaultsdeep": "4.6.0", "minilog": "3.1.0", diff --git a/src/playground/playground.js b/src/playground/playground.js index f32e17ef9ac..9ee92412290 100644 --- a/src/playground/playground.js +++ b/src/playground/playground.js @@ -59,11 +59,6 @@ window.onload = function () { }); window.workspace = workspace; - // Filter available blocks - var toolbox = vm.filterToolbox(workspace.options.languageTree); - // var toolbox = workspace.options.languageTree; - workspace.updateToolbox(toolbox); - // Attach scratch-blocks events to VM. workspace.addChangeListener(vm.blockListener); var flyoutWorkspace = workspace.getFlyout().getWorkspace(); diff --git a/src/util/filter-toolbox.js b/src/util/filter-toolbox.js deleted file mode 100644 index c4b18b41c86..00000000000 --- a/src/util/filter-toolbox.js +++ /dev/null @@ -1,49 +0,0 @@ -/** - * Filter Blockly toolbox XML node containing blocks to only those with - * valid opcodes. Return a copy of the node with valid blocks. - * @param {HTMLElement} node Blockly toolbox XML node - * @param {Array.} opcodes Valid opcodes. Blocks producing other opcodes - * will be filtered. - * @returns {HTMLElement} filtered toolbox XML node - */ -var filterToolboxNode = function (node, opcodes) { - var filteredCategory = node.cloneNode(); - for (var block = node.firstElementChild; block; block = block.nextElementSibling) { - if (block.nodeName.toLowerCase() !== 'block') continue; - var opcode = block.getAttribute('type').toLowerCase(); - if (opcodes.indexOf(opcode) !== -1) { - filteredCategory.appendChild(block.cloneNode(true)); - } - } - return filteredCategory; -}; - -/** - * Filter Blockly toolbox XML and return a copy which only contains blocks with - * existent opcodes. Categories with no valid children will be removed. - * @param {HTMLElement} toolbox Blockly toolbox XML node - * @param {Array.} opcodes Valid opcodes. Blocks producing other opcodes - * will be filtered. - * @returns {HTMLElement} filtered toolbox XML node - */ -var filterToolbox = function (toolbox, opcodes) { - if (!toolbox.hasChildNodes()) return toolbox; - var filteredToolbox; - if (toolbox.firstElementChild.nodeName.toLowerCase() === 'category') { - filteredToolbox = toolbox.cloneNode(); - for ( - var category = toolbox.firstElementChild; - category; - category = category.nextElementSibling - ) { - if (category.nodeName.toLowerCase() !== 'category') continue; - var filteredCategory = filterToolboxNode(category, opcodes); - if (filteredCategory.hasChildNodes()) filteredToolbox.appendChild(filteredCategory); - } - } else { - filteredToolbox = filterToolboxNode(toolbox, opcodes); - } - return filteredToolbox; -}; - -module.exports = filterToolbox; diff --git a/src/virtual-machine.js b/src/virtual-machine.js index b7b56af2ce7..1431640fb54 100644 --- a/src/virtual-machine.js +++ b/src/virtual-machine.js @@ -1,7 +1,6 @@ var EventEmitter = require('events'); var util = require('util'); -var filterToolbox = require('./util/filter-toolbox'); var Runtime = require('./engine/runtime'); var sb2import = require('./import/sb2import'); @@ -372,17 +371,4 @@ VirtualMachine.prototype.postSpriteInfo = function (data) { this.editingTarget.postSpriteInfo(data); }; - -/** - * Filter Blockly toolbox XML and return a copy which only contains blocks with - * existent opcodes. Categories with no valid children will be removed. - * @param {HTMLElement} toolbox Blockly toolbox XML node - * @returns {HTMLElement} filtered toolbox XML node - */ -VirtualMachine.prototype.filterToolbox = function (toolbox) { - var opcodes = Object.keys(this.runtime._primitives) - .concat(Object.keys(this.runtime._hats)); - return filterToolbox(toolbox, opcodes); -}; - module.exports = VirtualMachine; diff --git a/test/fixtures/.eslintrc.js b/test/fixtures/.eslintrc.js deleted file mode 100644 index 8df47e66785..00000000000 --- a/test/fixtures/.eslintrc.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - rules: { - 'max-len': [0] - } -}; diff --git a/test/fixtures/toolboxes.js b/test/fixtures/toolboxes.js deleted file mode 100644 index e8efe6f9604..00000000000 --- a/test/fixtures/toolboxes.js +++ /dev/null @@ -1,845 +0,0 @@ -var jsdom = require('jsdom').jsdom; -var categories = ''; -var simple = ''; -var empty = ''; -module.exports = { - categories: jsdom(categories).body.firstElementChild, - simple: jsdom(simple).body.firstElementChild, - empty: jsdom(empty).body.firstElementChild -}; diff --git a/test/unit/util_filter-toolbox.js b/test/unit/util_filter-toolbox.js deleted file mode 100644 index 4334b819d53..00000000000 --- a/test/unit/util_filter-toolbox.js +++ /dev/null @@ -1,22 +0,0 @@ -var toolboxes = require('../fixtures/toolboxes'); -var test = require('tap').test; -var filterToolbox = require('../../src/util/filter-toolbox'); - -test('categories', function (t) { - var filteredToolbox = filterToolbox(toolboxes.categories, ['operator_random']); - t.strictEqual(filteredToolbox.children.length, 1); - t.strictEqual(filteredToolbox.firstElementChild.children.length, 1); - t.end(); -}); - -test('simple', function (t) { - var filteredToolbox = filterToolbox(toolboxes.simple, ['operator_random']); - t.strictEqual(filteredToolbox.children.length, 1); - t.end(); -}); - -test('empty', function (t) { - var filteredToolbox = filterToolbox(toolboxes.empty, ['operator_random']); - t.strictEqual(filteredToolbox.children.length, 0); - t.end(); -});