@@ -1231,4 +1231,43 @@ suite('Keyboard Shortcut Items', function () {
12311231 this . workspace . registerButtonCallback ( 'CREATE_VARIABLE' , oldCallback ) ;
12321232 } ) ;
12331233 } ) ;
1234+
1235+ suite ( 'Clean up workspace (C)' , function ( ) {
1236+ test ( 'Arranges all blocks in a vertical column' , function ( ) {
1237+ this . workspace . newBlock ( 'controls_if' ) ;
1238+ const block2 = this . workspace . newBlock ( 'controls_if' ) ;
1239+ block2 . moveBy ( 300 , 20 ) ;
1240+ const block3 = this . workspace . newBlock ( 'controls_if' ) ;
1241+ block3 . moveBy ( - 75 , - 60 ) ;
1242+
1243+ const event = createKeyDownEvent ( Blockly . utils . KeyCodes . C ) ;
1244+ this . workspace . getInjectionDiv ( ) . dispatchEvent ( event ) ;
1245+
1246+ for ( const block of this . workspace . getTopBlocks ( ) ) {
1247+ assert . equal ( block . relativeCoords . x , 0 ) ;
1248+ }
1249+ } ) ;
1250+
1251+ test ( 'Does nothing on a readonly workspace' , function ( ) {
1252+ this . workspace . newBlock ( 'controls_if' ) ;
1253+ const block2 = this . workspace . newBlock ( 'controls_if' ) ;
1254+ block2 . moveBy ( 300 , 20 ) ;
1255+ const block3 = this . workspace . newBlock ( 'controls_if' ) ;
1256+ block3 . moveBy ( - 75 , - 60 ) ;
1257+
1258+ this . workspace . setIsReadOnly ( true ) ;
1259+
1260+ const oldBounds = this . workspace
1261+ . getTopBlocks ( true )
1262+ . map ( ( b ) => b . getBoundingRectangle ( ) ) ;
1263+
1264+ const event = createKeyDownEvent ( Blockly . utils . KeyCodes . C ) ;
1265+ this . workspace . getInjectionDiv ( ) . dispatchEvent ( event ) ;
1266+
1267+ const newBounds = this . workspace
1268+ . getTopBlocks ( true )
1269+ . map ( ( b ) => b . getBoundingRectangle ( ) ) ;
1270+ assert . deepEqual ( oldBounds , newBounds ) ;
1271+ } ) ;
1272+ } ) ;
12341273} ) ;
0 commit comments