1+ /**
2+ * @license
3+ * Blockly Tests
4+ *
5+ * Copyright 2018 Google Inc.
6+ * https://developers.google.com/blockly/
7+ *
8+ * Licensed under the Apache License, Version 2.0 (the "License");
9+ * you may not use this file except in compliance with the License.
10+ * You may obtain a copy of the License at
11+ *
12+ * http://www.apache.org/licenses/LICENSE-2.0
13+ *
14+ * Unless required by applicable law or agreed to in writing, software
15+ * distributed under the License is distributed on an "AS IS" BASIS,
16+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17+ * See the License for the specific language governing permissions and
18+ * limitations under the License.
19+ */
20+ 'use strict' ;
21+
22+ goog . require ( 'goog.testing' ) ;
23+ goog . require ( 'goog.testing.MockControl' ) ;
24+
25+ function eventSvg_setUpMockBlocks ( ) {
26+ // TODO: Replace with defineGetVarBlock();
27+ Blockly . defineBlocksWithJsonArray ( [ {
28+ 'type' : 'field_variable_test_block' ,
29+ 'message0' : '%1' ,
30+ 'args0' : [
31+ {
32+ 'type' : 'field_variable' ,
33+ 'name' : 'VAR' ,
34+ 'variable' : 'item'
35+ }
36+ ] ,
37+ } ,
38+ {
39+ 'type' : 'simple_test_block' ,
40+ 'message0' : 'simple test block' ,
41+ 'output' : null
42+ } ,
43+ {
44+ 'type' : 'test_val_in' ,
45+ 'message0' : 'test in %1' ,
46+ 'args0' : [
47+ {
48+ 'type' : 'input_value' ,
49+ 'name' : 'NAME'
50+ }
51+ ]
52+ } ] ) ;
53+ }
54+
55+ function eventSvg_tearDownMockBlocks ( ) {
56+ delete Blockly . Blocks [ 'field_variable_test_block' ] ;
57+ delete Blockly . Blocks [ 'simple_test_block' ] ;
58+ delete Blockly . Blocks [ 'test_val_in' ] ;
59+ }
60+
61+ function eventSvg_createWorkspaceWithToolbox ( ) {
62+ var toolbox = document . getElementById ( 'toolbox-categories' ) ;
63+ return Blockly . inject ( 'blocklyDiv' , { toolbox : toolbox } ) ;
64+ }
65+
66+ function eventSvg_createNewBlock ( workspace , type ) {
67+ var block = workspace . newBlock ( type ) ;
68+ block . initSvg ( ) ;
69+ return block ;
70+ }
71+
72+ function test_blockDelete_svgDispose ( ) {
73+ eventSvg_setUpMockBlocks ( ) ;
74+ var workspace = eventSvg_createWorkspaceWithToolbox ( ) ;
75+ Blockly . Events . fire = temporary_fireEvent ;
76+ temporary_fireEvent . firedEvents_ = [ ] ;
77+ try {
78+ var block = eventSvg_createNewBlock ( workspace ) ;
79+ block . setCommentText ( 'test comment' ) ;
80+ var event = new Blockly . Events . BlockDelete ( block ) ;
81+ workspace . clearUndo ( ) ;
82+ block . dispose ( ) ;
83+ var firedEvents = workspace . undoStack_ ;
84+ assertEquals ( 'Delete event created by dispose matches constructed delete event' ,
85+ Blockly . Xml . domToText ( event . oldXml ) , Blockly . Xml . domToText ( firedEvents [ 0 ] . oldXml ) ) ;
86+ } finally {
87+ eventSvg_tearDownMockBlocks ( ) ;
88+ workspace . dispose ( ) ;
89+ }
90+ }
0 commit comments