bpmn-js 0.20.6 → 0.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (410) hide show
  1. package/.eslintrc +33 -33
  2. package/.npmignore +8 -8
  3. package/.travis.yml +19 -17
  4. package/.wiredeps +88 -88
  5. package/CONTRIBUTING.md +55 -55
  6. package/Gruntfile.js +129 -129
  7. package/LICENSE +22 -22
  8. package/README.md +113 -113
  9. package/assets/bpmn-font/css/bpmn-embedded.css +159 -159
  10. package/assets/bpmn-font/css/bpmn.css +161 -161
  11. package/assets/bpmn-font/font/bpmn.svg +116 -116
  12. package/docs/architecture/overview.svg +48 -48
  13. package/docs/project/COMMIT_MESSAGES.md +82 -82
  14. package/docs/project/SETUP.md +66 -66
  15. package/docs/project/setup-alternative.sh +41 -41
  16. package/docs/project/setup.bat +45 -45
  17. package/docs/project/setup.sh +40 -40
  18. package/docs/translations.json +97 -97
  19. package/lib/Modeler.js +208 -208
  20. package/lib/NavigatedViewer.js +27 -27
  21. package/lib/Viewer.js +503 -503
  22. package/lib/core/index.js +5 -5
  23. package/lib/draw/BpmnRenderer.js +1934 -1934
  24. package/lib/draw/PathMap.js +478 -478
  25. package/lib/draw/index.js +5 -5
  26. package/lib/features/auto-resize/BpmnAutoResize.js +34 -34
  27. package/lib/features/auto-resize/BpmnAutoResizeProvider.js +51 -51
  28. package/lib/features/auto-resize/index.js +5 -5
  29. package/lib/features/context-pad/ContextPadProvider.js +374 -374
  30. package/lib/features/context-pad/index.js +11 -11
  31. package/lib/features/copy-paste/BpmnCopyPaste.js +157 -154
  32. package/lib/features/copy-paste/index.js +7 -7
  33. package/lib/features/distribute-elements/BpmnDistributeElements.js +34 -34
  34. package/lib/features/distribute-elements/index.js +7 -7
  35. package/lib/features/editor-actions/BpmnEditorActions.js +130 -130
  36. package/lib/features/editor-actions/index.js +15 -15
  37. package/lib/features/global-connect/BpmnGlobalConnect.js +49 -49
  38. package/lib/features/global-connect/index.js +7 -7
  39. package/lib/features/keyboard/BpmnKeyBindings.js +72 -72
  40. package/lib/features/keyboard/index.js +7 -7
  41. package/lib/features/label-editing/LabelEditingPreview.js +122 -0
  42. package/lib/features/label-editing/LabelEditingProvider.js +292 -193
  43. package/lib/features/label-editing/LabelUtil.js +43 -43
  44. package/lib/features/label-editing/cmd/UpdateLabelHandler.js +116 -112
  45. package/lib/features/label-editing/index.js +14 -9
  46. package/lib/features/modeling/BpmnFactory.js +97 -97
  47. package/lib/features/modeling/BpmnLayouter.js +191 -191
  48. package/lib/features/modeling/BpmnUpdater.js +692 -688
  49. package/lib/features/modeling/ElementFactory.js +218 -218
  50. package/lib/features/modeling/Modeling.js +183 -183
  51. package/lib/features/modeling/behavior/AppendBehavior.js +42 -42
  52. package/lib/features/modeling/behavior/CopyPasteBehavior.js +69 -69
  53. package/lib/features/modeling/behavior/CreateBoundaryEventBehavior.js +51 -51
  54. package/lib/features/modeling/behavior/CreateDataObjectBehavior.js +37 -37
  55. package/lib/features/modeling/behavior/CreateParticipantBehavior.js +91 -91
  56. package/lib/features/modeling/behavior/DataInputAssociationBehavior.js +151 -151
  57. package/lib/features/modeling/behavior/DeleteLaneBehavior.js +107 -107
  58. package/lib/features/modeling/behavior/DropOnFlowBehavior.js +165 -131
  59. package/lib/features/modeling/behavior/ImportDockingFix.js +80 -80
  60. package/lib/features/modeling/behavior/LabelBehavior.js +222 -222
  61. package/lib/features/modeling/behavior/ModelingFeedback.js +50 -50
  62. package/lib/features/modeling/behavior/RemoveElementBehavior.js +73 -73
  63. package/lib/features/modeling/behavior/RemoveParticipantBehavior.js +50 -50
  64. package/lib/features/modeling/behavior/ReplaceConnectionBehavior.js +128 -128
  65. package/lib/features/modeling/behavior/ReplaceElementBehaviour.js +118 -116
  66. package/lib/features/modeling/behavior/ResizeLaneBehavior.js +59 -59
  67. package/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js +138 -138
  68. package/lib/features/modeling/behavior/UnclaimIdBehavior.js +27 -27
  69. package/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js +54 -54
  70. package/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js +156 -156
  71. package/lib/features/modeling/behavior/index.js +44 -44
  72. package/lib/features/modeling/behavior/util/GeometricUtil.js +129 -129
  73. package/lib/features/modeling/behavior/util/LabelLayoutUtil.js +218 -218
  74. package/lib/features/modeling/behavior/util/LineAttachmentUtil.js +233 -233
  75. package/lib/features/modeling/behavior/util/LineIntersect.js +36 -36
  76. package/lib/features/modeling/cmd/AddLaneHandler.js +83 -83
  77. package/lib/features/modeling/cmd/IdClaimHandler.js +41 -41
  78. package/lib/features/modeling/cmd/ResizeLaneHandler.js +125 -125
  79. package/lib/features/modeling/cmd/SplitLaneHandler.js +82 -82
  80. package/lib/features/modeling/cmd/UpdateCanvasRootHandler.js +78 -78
  81. package/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js +185 -185
  82. package/lib/features/modeling/cmd/UpdatePropertiesHandler.js +264 -264
  83. package/lib/features/modeling/index.js +23 -23
  84. package/lib/features/modeling/util/LaneUtil.js +157 -157
  85. package/lib/features/modeling/util/ModelingUtil.js +48 -48
  86. package/lib/features/ordering/BpmnOrderingProvider.js +147 -147
  87. package/lib/features/ordering/index.js +6 -6
  88. package/lib/features/palette/PaletteProvider.js +158 -158
  89. package/lib/features/palette/index.js +13 -13
  90. package/lib/features/popup-menu/ReplaceMenuProvider.js +479 -479
  91. package/lib/features/popup-menu/index.js +7 -7
  92. package/lib/features/popup-menu/util/TypeUtil.js +41 -41
  93. package/lib/features/replace/BpmnReplace.js +197 -197
  94. package/lib/features/replace/ReplaceOptions.js +787 -787
  95. package/lib/features/replace/index.js +7 -7
  96. package/lib/features/replace-preview/BpmnReplacePreview.js +113 -113
  97. package/lib/features/replace-preview/index.js +5 -5
  98. package/lib/features/rules/BpmnRules.js +807 -806
  99. package/lib/features/rules/index.js +7 -7
  100. package/lib/features/search/BpmnSearchProvider.js +128 -128
  101. package/lib/features/search/index.js +7 -7
  102. package/lib/features/snapping/BpmnSnapping.js +511 -495
  103. package/lib/features/snapping/BpmnSnappingUtil.js +159 -159
  104. package/lib/features/snapping/index.js +3 -3
  105. package/lib/import/BpmnImporter.js +302 -302
  106. package/lib/import/BpmnTreeWalker.js +445 -445
  107. package/lib/import/Importer.js +69 -69
  108. package/lib/import/Util.js +8 -8
  109. package/lib/import/index.js +5 -5
  110. package/lib/util/DiUtil.js +60 -60
  111. package/lib/util/LabelUtil.js +139 -139
  112. package/lib/util/ModelUtil.js +31 -31
  113. package/lib/util/PoweredByUtil.js +82 -82
  114. package/lib/util/model/ModelCloneHelper.js +201 -201
  115. package/lib/util/model/ModelCloneUtils.js +35 -35
  116. package/package.json +22 -22
  117. package/resources/initial.bpmn +12 -12
  118. package/resources/screencast.gif +0 -0
  119. package/tasks/banner.txt +11 -11
  120. package/tasks/bundle.js +162 -162
  121. package/test/TestHelper.js +17 -17
  122. package/test/config/karma.unit.js +46 -46
  123. package/test/config/translation-reporter.js +48 -48
  124. package/test/fixtures/bpmn/align-elements.bpmn +136 -136
  125. package/test/fixtures/bpmn/basic.bpmn +17 -17
  126. package/test/fixtures/bpmn/boundary-events.bpmn +59 -59
  127. package/test/fixtures/bpmn/collaboration/collaboration-empty-participant.bpmn +13 -13
  128. package/test/fixtures/bpmn/collaboration/collaboration-message-flows.bpmn +89 -89
  129. package/test/fixtures/bpmn/collaboration/collaboration-participant.bpmn +59 -59
  130. package/test/fixtures/bpmn/collaboration/process-empty.bpmn +6 -6
  131. package/test/fixtures/bpmn/collaboration/process.bpmn +47 -47
  132. package/test/fixtures/bpmn/collaboration-data-items.bpmn +81 -81
  133. package/test/fixtures/bpmn/collaboration-message-flows.bpmn +82 -82
  134. package/test/fixtures/bpmn/collaboration-sequence-flows.bpmn +83 -83
  135. package/test/fixtures/bpmn/collaboration.bpmn +50 -50
  136. package/test/fixtures/bpmn/complex.bpmn +2151 -2151
  137. package/test/fixtures/bpmn/conditions.bpmn +82 -82
  138. package/test/fixtures/bpmn/containers.bpmn +128 -128
  139. package/test/fixtures/bpmn/distribute-elements-filtering.bpmn +58 -58
  140. package/test/fixtures/bpmn/distribute-elements.bpmn +232 -232
  141. package/test/fixtures/bpmn/draw/activity-markers-combination.bpmn +141 -141
  142. package/test/fixtures/bpmn/draw/activity-markers-simple.bpmn +47 -47
  143. package/test/fixtures/bpmn/draw/activity-markers.bpmn +212 -212
  144. package/test/fixtures/bpmn/draw/associations.bpmn +55 -55
  145. package/test/fixtures/bpmn/draw/boundary-event-with-refnode.bpmn +81 -81
  146. package/test/fixtures/bpmn/draw/boundary-event-without-refnode.bpmn +81 -81
  147. package/test/fixtures/bpmn/draw/boundary-event-z-index.bpmn +82 -82
  148. package/test/fixtures/bpmn/draw/call-activity.bpmn +12 -12
  149. package/test/fixtures/bpmn/draw/colors.bpmn +411 -411
  150. package/test/fixtures/bpmn/draw/conditional-flow-default.bpmn +100 -100
  151. package/test/fixtures/bpmn/draw/conditional-flow-gateways.bpmn +72 -72
  152. package/test/fixtures/bpmn/draw/conditional-flow-typed-task.bpmn +33 -33
  153. package/test/fixtures/bpmn/draw/conditional-flow.bpmn +248 -248
  154. package/test/fixtures/bpmn/draw/data-objects.bpmn +265 -265
  155. package/test/fixtures/bpmn/draw/event-subprocesses-collapsed.bpmn +200 -200
  156. package/test/fixtures/bpmn/draw/event-subprocesses-expanded.bpmn +274 -274
  157. package/test/fixtures/bpmn/draw/events-interrupting.bpmn +370 -370
  158. package/test/fixtures/bpmn/draw/events.bpmn +374 -374
  159. package/test/fixtures/bpmn/draw/gateway-type-default.bpmn +45 -45
  160. package/test/fixtures/bpmn/draw/gateways.bpmn +61 -61
  161. package/test/fixtures/bpmn/draw/group.bpmn +24 -24
  162. package/test/fixtures/bpmn/draw/message-marker.bpmn +112 -112
  163. package/test/fixtures/bpmn/draw/pools-with-collection-marker.bpmn +104 -104
  164. package/test/fixtures/bpmn/draw/pools.bpmn +82 -82
  165. package/test/fixtures/bpmn/draw/task-types.bpmn +77 -77
  166. package/test/fixtures/bpmn/draw/text-annotation.bpmn +71 -71
  167. package/test/fixtures/bpmn/draw/xor.bpmn +45 -45
  168. package/test/fixtures/bpmn/empty-definitions.bpmn +4 -4
  169. package/test/fixtures/bpmn/error/categoryValue.bpmn +26 -26
  170. package/test/fixtures/bpmn/error/di-plane-no-bpmn-element.bpmn +9 -9
  171. package/test/fixtures/bpmn/error/duplicate-ids.bpmn +14 -14
  172. package/test/fixtures/bpmn/error/invalid-child.bpmn +6 -6
  173. package/test/fixtures/bpmn/error/missing-namespace.bpmn +12 -12
  174. package/test/fixtures/bpmn/event-sub-processes.bpmn +47 -47
  175. package/test/fixtures/bpmn/extension/camunda.bpmn +52 -52
  176. package/test/fixtures/bpmn/extension/custom-override.bpmn +53 -53
  177. package/test/fixtures/bpmn/extension/custom.bpmn +53 -53
  178. package/test/fixtures/bpmn/features/copy-paste/basic.bpmn +111 -111
  179. package/test/fixtures/bpmn/features/copy-paste/collaboration-multiple.bpmn +102 -102
  180. package/test/fixtures/bpmn/features/copy-paste/collaboration.bpmn +74 -74
  181. package/test/fixtures/bpmn/features/copy-paste/data-associations.bpmn +61 -61
  182. package/test/fixtures/bpmn/features/copy-paste/properties.bpmn +43 -43
  183. package/test/fixtures/bpmn/features/drop/drop.bpmn +41 -41
  184. package/test/fixtures/bpmn/features/drop/recursive-task.bpmn +37 -37
  185. package/test/fixtures/bpmn/features/label-editing/labels.bpmn +178 -248
  186. package/test/fixtures/bpmn/features/modeling/update-label.bpmn +24 -24
  187. package/test/fixtures/bpmn/features/replace/01_replace.bpmn +193 -193
  188. package/test/fixtures/bpmn/features/replace/association-gateways.bpmn +173 -173
  189. package/test/fixtures/bpmn/features/replace/cancel-events.bpmn +49 -49
  190. package/test/fixtures/bpmn/features/replace/clone-properties.bpmn +141 -141
  191. package/test/fixtures/bpmn/features/replace/connection.bpmn +42 -42
  192. package/test/fixtures/bpmn/features/rules/event-based-gateway-outgoing-edge.bpmn +72 -72
  193. package/test/fixtures/bpmn/features/rules/link-event.bpmn +35 -35
  194. package/test/fixtures/bpmn/features/rules/text-annotation-association.bpmn +30 -30
  195. package/test/fixtures/bpmn/flow-markers.bpmn +212 -212
  196. package/test/fixtures/bpmn/import/boundaryEvent.bpmn +33 -33
  197. package/test/fixtures/bpmn/import/collaboration.bpmn +50 -50
  198. package/test/fixtures/bpmn/import/collapsed/collaboration.bpmn +76 -76
  199. package/test/fixtures/bpmn/import/collapsed/process.bpmn +84 -84
  200. package/test/fixtures/bpmn/import/collapsed/processWithChildren.bpmn +273 -273
  201. package/test/fixtures/bpmn/import/default-attrs.bpmn +24 -24
  202. package/test/fixtures/bpmn/import/error/boundaryEvent-invalidAttachToRef.bpmn +30 -30
  203. package/test/fixtures/bpmn/import/error/boundaryEvent-missingAttachToRef.bpmn +33 -33
  204. package/test/fixtures/bpmn/import/error/dangling-process-message-flow.bpmn +81 -81
  205. package/test/fixtures/bpmn/import/error/invalid-flow-element.bpmn +35 -35
  206. package/test/fixtures/bpmn/import/error/multiple-dis.bpmn +23 -23
  207. package/test/fixtures/bpmn/import/labels/collaboration-message-flows.bpmn +41 -41
  208. package/test/fixtures/bpmn/import/labels/collaboration.bpmn +72 -72
  209. package/test/fixtures/bpmn/import/labels/embedded.bpmn +39 -39
  210. package/test/fixtures/bpmn/import/labels/external-no-di.bpmn +42 -42
  211. package/test/fixtures/bpmn/import/labels/external.bpmn +69 -69
  212. package/test/fixtures/bpmn/import/position/position-testcase.bpmn +57 -57
  213. package/test/fixtures/bpmn/import/process.bpmn +60 -60
  214. package/test/fixtures/bpmn/nested-subprocesses.bpmn +118 -118
  215. package/test/fixtures/bpmn/sequence-flows.bpmn +60 -60
  216. package/test/fixtures/bpmn/simple-cropping.bpmn +84 -84
  217. package/test/fixtures/bpmn/simple-resizable.bpmn +50 -50
  218. package/test/fixtures/bpmn/simple.bpmn +60 -60
  219. package/test/fixtures/json/model/camunda.json +1042 -1042
  220. package/test/fixtures/json/model/custom-override.json +39 -39
  221. package/test/fixtures/json/model/custom.json +39 -39
  222. package/test/helper/TranslationCollector.js +17 -17
  223. package/test/helper/index.js +249 -249
  224. package/test/integration/CustomElementsSpec.js +223 -223
  225. package/test/integration/ReimportSpec.js +89 -89
  226. package/test/integration/SimpleModelingSpec.js +29 -29
  227. package/test/integration/custom-elements/CustomElementFactory.js +77 -77
  228. package/test/integration/custom-elements/CustomRenderer.js +151 -151
  229. package/test/integration/custom-elements/CustomRules.js +148 -148
  230. package/test/integration/custom-elements/CustomUpdater.js +115 -115
  231. package/test/integration/custom-elements/index.js +7 -7
  232. package/test/integration/model/BpmnModdleSpec.js +65 -65
  233. package/test/matchers/JSONMatcher.js +19 -19
  234. package/test/spec/ModelerSpec.js +401 -401
  235. package/test/spec/NavigatedViewerSpec.js +58 -58
  236. package/test/spec/ViewerSpec.js +977 -977
  237. package/test/spec/draw/BpmnRendererSpec.js +311 -311
  238. package/test/spec/environment/MockingSpec.js +53 -53
  239. package/test/spec/features/align-elements/BpmnAlignElementsSpec.js +137 -137
  240. package/test/spec/features/auto-resize/AutoResize.lanes.bpmn +54 -54
  241. package/test/spec/features/auto-resize/AutoResize.multi-selection.bpmn +22 -22
  242. package/test/spec/features/auto-resize/AutoResize.nested-sub-processes.bpmn +47 -47
  243. package/test/spec/features/auto-resize/AutoResize.participant.bpmn +38 -38
  244. package/test/spec/features/auto-resize/AutoResize.space-tool.bpmn +38 -38
  245. package/test/spec/features/auto-resize/AutoResize.sub-processes.bpmn +37 -37
  246. package/test/spec/features/auto-resize/AutoResizeSpec.js +607 -607
  247. package/test/spec/features/context-pad/ContextPad.activation.bpmn +51 -51
  248. package/test/spec/features/context-pad/ContextPadProviderSpec.js +440 -440
  249. package/test/spec/features/copy-paste/BpmnCopyPasteSpec.js +763 -725
  250. package/test/spec/features/copy-paste/DescriptorTree.js +58 -58
  251. package/test/spec/features/distribute-elements/BpmnDistributeElementsSpec.js +113 -113
  252. package/test/spec/features/editor-actions/BpmnEditorActionsSpec.js +72 -72
  253. package/test/spec/features/global-connect/BpmnGlobalConnectSpec.js +61 -61
  254. package/test/spec/features/keyboard/BpmnKeyBindingsSpec.js +142 -142
  255. package/test/spec/features/label-editing/LabelEditingPreviewSpec.js +133 -0
  256. package/test/spec/features/label-editing/LabelEditingProviderSpec.js +636 -601
  257. package/test/spec/features/label-editing/TouchIntegrationSpec.js +40 -40
  258. package/test/spec/features/modeling/AppendShapeSpec.js +332 -332
  259. package/test/spec/features/modeling/BendpointsSpec.js +25 -25
  260. package/test/spec/features/modeling/BpmnFactorySpec.js +73 -73
  261. package/test/spec/features/modeling/BpmnUpdater.bpmn +99 -99
  262. package/test/spec/features/modeling/BpmnUpdaterSpec.js +79 -79
  263. package/test/spec/features/modeling/CreateConnectionSpec.js +171 -171
  264. package/test/spec/features/modeling/DeleteConnectionSpec.js +75 -75
  265. package/test/spec/features/modeling/DeleteParticipantSpec.js +97 -97
  266. package/test/spec/features/modeling/DeleteShapeSpec.js +75 -75
  267. package/test/spec/features/modeling/DropSpec.js +123 -123
  268. package/test/spec/features/modeling/IdClaim.bpmn +13 -13
  269. package/test/spec/features/modeling/IdClaimSpec.js +50 -50
  270. package/test/spec/features/modeling/LabelBoundsSpec.js +342 -340
  271. package/test/spec/features/modeling/LabelBoundsSpec.simple.bpmn +27 -27
  272. package/test/spec/features/modeling/LabelLayouting.initial.bpmn +37 -37
  273. package/test/spec/features/modeling/LabelLayouting.move.bpmn +99 -99
  274. package/test/spec/features/modeling/LabelLayouting.special.bpmn +76 -76
  275. package/test/spec/features/modeling/LabelLayoutingSpec.js +603 -603
  276. package/test/spec/features/modeling/MoveConnectionSpec.js +101 -101
  277. package/test/spec/features/modeling/MoveElements.flow-collaboration.bpmn +45 -45
  278. package/test/spec/features/modeling/MoveElementsSpec.js +70 -70
  279. package/test/spec/features/modeling/MoveRulesSpec.js +151 -151
  280. package/test/spec/features/modeling/MoveShapeSpec.js +353 -353
  281. package/test/spec/features/modeling/ResizeShapeSpec.js +73 -73
  282. package/test/spec/features/modeling/SpaceToolSpec.js +251 -251
  283. package/test/spec/features/modeling/UpdateAttachmentSpec.js +96 -96
  284. package/test/spec/features/modeling/UpdateLabelSpec.js +130 -130
  285. package/test/spec/features/modeling/UpdatePropertiesSpec.js +503 -503
  286. package/test/spec/features/modeling/append/TextAnnotationSpec.js +136 -136
  287. package/test/spec/features/modeling/behavior/CompensationAssociationBehavior.bpmn +26 -26
  288. package/test/spec/features/modeling/behavior/CompensationAssociationBehaviorSpec.js +43 -43
  289. package/test/spec/features/modeling/behavior/CreateBoundaryEventBehaviorSpec.js +58 -58
  290. package/test/spec/features/modeling/behavior/CreateParticipantBehaviorSpec.js +224 -224
  291. package/test/spec/features/modeling/behavior/DataInputAssociationBehavior.bpmn +33 -33
  292. package/test/spec/features/modeling/behavior/DataInputAssociationBehaviorSpec.js +146 -146
  293. package/test/spec/features/modeling/behavior/DataObjectBehavior.create-data-association.bpmn +21 -21
  294. package/test/spec/features/modeling/behavior/DataObjectBehavior.data-object-reference.bpmn +13 -13
  295. package/test/spec/features/modeling/behavior/DataObjectBehavior.remove-data-association.bpmn +41 -41
  296. package/test/spec/features/modeling/behavior/DataObjectBehaviorSpec.js +297 -297
  297. package/test/spec/features/modeling/behavior/DataStoreBehavior.bpmn +26 -26
  298. package/test/spec/features/modeling/behavior/DataStoreBehavior.connect.bpmn +57 -57
  299. package/test/spec/features/modeling/behavior/DataStoreBehaviorSpec.js +228 -228
  300. package/test/spec/features/modeling/behavior/DropOnFlowBehavior.bpmn +71 -67
  301. package/test/spec/features/modeling/behavior/DropOnFlowBehaviorSpec.js +591 -418
  302. package/test/spec/features/modeling/behavior/ImportDockingFix.bpmn +61 -61
  303. package/test/spec/features/modeling/behavior/ImportDockingFixSpec.js +37 -37
  304. package/test/spec/features/modeling/behavior/LabelBehaviorSpec.js +277 -277
  305. package/test/spec/features/modeling/behavior/ReconnectConnection.data-association.bpmn +41 -41
  306. package/test/spec/features/modeling/behavior/ReconnectConnectionSpec.js +120 -120
  307. package/test/spec/features/modeling/behavior/RemoveElementBehavior.bpmn +181 -181
  308. package/test/spec/features/modeling/behavior/RemoveElementBehavior.perpendicular.bpmn +159 -159
  309. package/test/spec/features/modeling/behavior/RemoveElementBehaviorSpec.js +251 -251
  310. package/test/spec/features/modeling/behavior/RemoveParticipantBehaviorSpec.js +125 -125
  311. package/test/spec/features/modeling/behavior/ReplaceConnectionBehavior.association.bpmn +26 -26
  312. package/test/spec/features/modeling/behavior/ReplaceConnectionBehavior.boundary-events.bpmn +40 -40
  313. package/test/spec/features/modeling/behavior/ReplaceConnectionBehavior.message-sequence-flow.bpmn +121 -121
  314. package/test/spec/features/modeling/behavior/ReplaceConnectionBehaviorSpec.js +439 -439
  315. package/test/spec/features/modeling/behavior/ReplaceElementBehaviourSpec.js +450 -450
  316. package/test/spec/features/modeling/behavior/ToggleElementCollapseBehaviourSpec.js +653 -653
  317. package/test/spec/features/modeling/behavior/UnsetDefaultFlowBehaviorSpec.bpmn +48 -48
  318. package/test/spec/features/modeling/behavior/UnsetDefaultFlowBehaviorSpec.js +77 -77
  319. package/test/spec/features/modeling/behavior/util/GeometricUtilSpec.js +127 -127
  320. package/test/spec/features/modeling/behavior/util/LabelLayoutUtilSpec.js +75 -75
  321. package/test/spec/features/modeling/behavior/util/LineAttachmentUtilSpec.js +294 -294
  322. package/test/spec/features/modeling/behavior/util/LineIntersectSpec.js +32 -32
  323. package/test/spec/features/modeling/lanes/AddLaneSpec.js +263 -263
  324. package/test/spec/features/modeling/lanes/DeleteLaneSpec.js +126 -126
  325. package/test/spec/features/modeling/lanes/ResizeLaneSpec.js +366 -366
  326. package/test/spec/features/modeling/lanes/SplitLaneSpec.js +216 -216
  327. package/test/spec/features/modeling/lanes/UpdateFlowNodeRefsSpec.js +271 -271
  328. package/test/spec/features/modeling/lanes/flowNodeRefs.bpmn +56 -56
  329. package/test/spec/features/modeling/lanes/lanes.bpmn +83 -83
  330. package/test/spec/features/modeling/lanes/participant-lane.bpmn +27 -27
  331. package/test/spec/features/modeling/lanes/participant-no-lane.bpmn +22 -22
  332. package/test/spec/features/modeling/layout/Helper.js +64 -64
  333. package/test/spec/features/modeling/layout/LayoutAssociationSpec.js +101 -101
  334. package/test/spec/features/modeling/layout/LayoutConnectionSpec.js +98 -98
  335. package/test/spec/features/modeling/layout/LayoutDataAssociationSpec.js +98 -98
  336. package/test/spec/features/modeling/layout/LayoutMessageFlowSpec.bpmn +119 -119
  337. package/test/spec/features/modeling/layout/LayoutMessageFlowSpec.js +313 -313
  338. package/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.boundaryEvents.bpmn +65 -65
  339. package/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.flowElements.bpmn +70 -70
  340. package/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.js +323 -323
  341. package/test/spec/features/ordering/BpmnOrderingProviderSpec.js +231 -231
  342. package/test/spec/features/ordering/Helper.js +185 -185
  343. package/test/spec/features/ordering/ordering-start-event.bpmn +17 -17
  344. package/test/spec/features/ordering/ordering-subprocesses.bpmn +41 -41
  345. package/test/spec/features/ordering/ordering.bpmn +105 -105
  346. package/test/spec/features/palette/PaletteProviderSpec.js +33 -33
  347. package/test/spec/features/popup-menu/ReplaceMenuProvider.collapsedSubProcess.bpmn +13 -13
  348. package/test/spec/features/popup-menu/ReplaceMenuProvider.compensation-activity.bpmn +12 -12
  349. package/test/spec/features/popup-menu/ReplaceMenuProvider.conditionalFlows.bpmn +66 -66
  350. package/test/spec/features/popup-menu/ReplaceMenuProvider.defaultFlows.bpmn +126 -126
  351. package/test/spec/features/popup-menu/ReplaceMenuProvider.defaultFlowsFromComplexGateways.bpmn +48 -48
  352. package/test/spec/features/popup-menu/ReplaceMenuProvider.defaultFlowsFromInclusiveGateways.bpmn +48 -48
  353. package/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js +1957 -1957
  354. package/test/spec/features/replace/BpmnReplace.collaboration.bpmn +70 -70
  355. package/test/spec/features/replace/BpmnReplace.compensation.bpmn +12 -12
  356. package/test/spec/features/replace/BpmnReplace.eventSubProcesses.bpmn +126 -126
  357. package/test/spec/features/replace/BpmnReplaceSpec.js +1302 -1302
  358. package/test/spec/features/replace/ReplaceRulesSpec.js +78 -78
  359. package/test/spec/features/replace/SubProcess-collapsed.bpmn +36 -36
  360. package/test/spec/features/replace-preview/BpmnReplacePreviewSpec.js +304 -304
  361. package/test/spec/features/rules/BpmnRules.boundaryEvent.bpmn +93 -93
  362. package/test/spec/features/rules/BpmnRules.collaboration-dataAssociation.bpmn +35 -35
  363. package/test/spec/features/rules/BpmnRules.collaboration-lanes.bpmn +79 -79
  364. package/test/spec/features/rules/BpmnRules.collaboration.bpmn +138 -138
  365. package/test/spec/features/rules/BpmnRules.compensation.bpmn +65 -65
  366. package/test/spec/features/rules/BpmnRules.dataAssociation.bpmn +33 -33
  367. package/test/spec/features/rules/BpmnRules.eventBasedGateway.bpmn +82 -82
  368. package/test/spec/features/rules/BpmnRules.messageFlow.bpmn +27 -27
  369. package/test/spec/features/rules/BpmnRules.multiSelectionPools.bpmn +37 -37
  370. package/test/spec/features/rules/BpmnRules.process.bpmn +91 -91
  371. package/test/spec/features/rules/BpmnRules.subProcess-dataAssociation.bpmn +44 -44
  372. package/test/spec/features/rules/BpmnRulesSpec.js +1468 -1424
  373. package/test/spec/features/rules/Helper.js +82 -82
  374. package/test/spec/features/search/BpmnSearchProviderSpec.js +158 -158
  375. package/test/spec/features/search/bpmn-search-collaboration.bpmn +106 -106
  376. package/test/spec/features/search/bpmn-search.bpmn +100 -100
  377. package/test/spec/features/snapping/BpmnSnapping.connect.bpmn +36 -36
  378. package/test/spec/features/snapping/BpmnSnapping.labels.bpmn +27 -27
  379. package/test/spec/features/snapping/BpmnSnapping.lanes-resize.bpmn +43 -43
  380. package/test/spec/features/snapping/BpmnSnapping.participant-resize.bpmn +50 -50
  381. package/test/spec/features/snapping/BpmnSnapping.sequenceFlow.bpmn +41 -0
  382. package/test/spec/features/snapping/BpmnSnapping.subProcess-resize.bpmn +21 -21
  383. package/test/spec/features/snapping/BpmnSnapping.textAnnotation-resize.bpmn +22 -22
  384. package/test/spec/features/snapping/BpmnSnappingSpec.js +824 -758
  385. package/test/spec/features/snapping/BpmnSnappingUtil.lanes-flowNodes.bpmn +82 -82
  386. package/test/spec/features/snapping/BpmnSnappingUtil.lanes.bpmn +35 -35
  387. package/test/spec/features/snapping/BpmnSnappingUtilSpec.js +285 -285
  388. package/test/spec/i18n/custom-translate/custom-translate.js +14 -14
  389. package/test/spec/i18n/custom-translate/index.js +2 -2
  390. package/test/spec/i18n/translateSpec.js +56 -56
  391. package/test/spec/import/ImporterSpec.js +428 -428
  392. package/test/spec/import/ModelWiringSpec.js +194 -194
  393. package/test/spec/import/elements/AssociationSpec.collaboration.bpmn +51 -51
  394. package/test/spec/import/elements/AssociationSpec.compensation.bpmn +28 -28
  395. package/test/spec/import/elements/AssociationSpec.data-association.bpmn +39 -39
  396. package/test/spec/import/elements/AssociationSpec.data-input-output.bpmn +40 -40
  397. package/test/spec/import/elements/AssociationSpec.events.bpmn +51 -51
  398. package/test/spec/import/elements/AssociationSpec.js +175 -175
  399. package/test/spec/import/elements/AssociationSpec.text-annotation.bpmn +37 -37
  400. package/test/spec/import/elements/CollapsedSpec.js +118 -118
  401. package/test/spec/import/elements/LabelSpec.js +85 -85
  402. package/test/spec/import/lane-flowNodes.bpmn +44 -44
  403. package/test/spec/import/lane-missing-flowNodeRef.bpmn +24 -24
  404. package/test/spec/util/ModelCloneHelperSpec.js +381 -381
  405. package/test/spec/util/ModelUtilSpec.js +65 -65
  406. package/test/spec/util/camunda-moddle.js +70 -70
  407. package/test/util/MockEvents.js +62 -62
  408. package/test/util/ModelingUtil.js +117 -117
  409. package/test/util/custom-rules/CustomRules.js +18 -18
  410. package/test/util/custom-rules/index.js +4 -4
@@ -1,607 +1,607 @@
1
- 'use strict';
2
-
3
- require('../../../TestHelper');
4
-
5
- /* global bootstrapModeler, inject */
6
-
7
- var pick = require('lodash/object/pick'),
8
- assign = require('lodash/object/assign');
9
-
10
- var autoResizeModule = require('../../../../lib/features/auto-resize'),
11
- modelingModule = require('../../../../lib/features/modeling'),
12
- createModule = require('diagram-js/lib/features/create'),
13
- coreModule = require('../../../../lib/core'),
14
- canvasEvent = require('../../../util/MockEvents').createCanvasEvent;
15
-
16
- function getBounds(shape) {
17
- return pick(shape, [ 'x', 'y', 'width', 'height' ]);
18
- }
19
-
20
-
21
- describe('features/auto-resize', function() {
22
-
23
- var testModules = [ coreModule, modelingModule, autoResizeModule, createModule ];
24
-
25
-
26
- describe('participant', function() {
27
-
28
- var diagramXML = require('./AutoResize.participant.bpmn');
29
-
30
- var taskShape,
31
- participantShape,
32
- startEventShape,
33
- originalBounds;
34
-
35
- beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
36
-
37
- beforeEach(inject(function(elementRegistry) {
38
-
39
- taskShape = elementRegistry.get('Task_1');
40
- participantShape = elementRegistry.get('Participant_1');
41
- startEventShape = elementRegistry.get('StartEvent_1');
42
-
43
- originalBounds = getBounds(participantShape);
44
-
45
- expect(originalBounds).to.eql({ x: 247, y: 160, width: 371, height: 178 });
46
-
47
- }));
48
-
49
-
50
- describe('after moving', function() {
51
-
52
- it('should expand the right edge', inject(function(modeling) {
53
-
54
- // when
55
- modeling.moveElements([ taskShape ], { x: 100, y: 0 }, participantShape);
56
-
57
- // then
58
- var expectedBounds = assign(originalBounds, { width: 525 });
59
-
60
- expect(participantShape).to.have.bounds(expectedBounds);
61
- }));
62
-
63
-
64
- it('should expand the top edge', inject(function(modeling) {
65
-
66
- // when
67
- modeling.moveElements([ taskShape ], { x: 0, y: -50 }, participantShape);
68
-
69
- // then
70
- var expectedBounds = assign(originalBounds, { y: 99, height: 239 });
71
-
72
- expect(participantShape).to.have.bounds(expectedBounds);
73
- }));
74
-
75
-
76
- it('should expand the bottom edge', inject(function(modeling) {
77
-
78
- // when
79
- modeling.moveElements([ taskShape ], { x: 0, y: 50 }, participantShape);
80
-
81
- // then
82
- var expectedBounds = assign(originalBounds, { height: 239 });
83
-
84
- expect(participantShape).to.have.bounds(expectedBounds);
85
- }));
86
-
87
-
88
- it('should expand the left edge', inject(function(modeling) {
89
-
90
- // when
91
- modeling.moveElements([ startEventShape ], { x: -100, y: 0 }, participantShape);
92
-
93
- // then
94
- var expectedBounds = assign(originalBounds, { x: 122, width: 496 });
95
-
96
- expect(participantShape).to.have.bounds(expectedBounds);
97
- }));
98
-
99
-
100
- it('should expand the bottom right edges', inject(function(modeling) {
101
-
102
- // when
103
- modeling.moveElements([ taskShape ], { x: 50, y: 50 }, participantShape);
104
-
105
- // then
106
- var expectedBounds = assign(originalBounds, { width: 475, height: 239 });
107
-
108
- expect(participantShape).to.have.bounds(expectedBounds);
109
- }));
110
-
111
-
112
- it('should expand the top left edges', inject(function(modeling) {
113
-
114
- // when
115
- modeling.moveElements([ startEventShape ], { x: -100, y: -100 }, participantShape);
116
-
117
- // then
118
- expect(participantShape).to.have.bounds({ x: 122, y: 71, width: 496, height: 267 });
119
- }));
120
-
121
-
122
- it('should resize the parent on element/parent edge intersect', inject(function(modeling) {
123
-
124
- // when
125
- modeling.moveElements([ taskShape ], { x: 0, y: 49 }, participantShape);
126
-
127
- // then
128
- var expectedBounds = assign(originalBounds, { height: 238 });
129
-
130
- expect(participantShape).to.have.bounds(expectedBounds);
131
- }));
132
-
133
-
134
- it('should not resize the parent if element is placed near the bottom', inject(function(modeling) {
135
-
136
- // when
137
- modeling.moveElements([ taskShape ], { x: 0, y: 47 }, participantShape);
138
-
139
- // then
140
- expect(participantShape).to.have.bounds(originalBounds);
141
- }));
142
-
143
-
144
- describe('undo / redo support', function() {
145
-
146
- it('should undo', inject(function(modeling, commandStack) {
147
-
148
- // when
149
- modeling.moveElements([ startEventShape ], { x: -100, y: -100 }, participantShape);
150
- commandStack.undo();
151
-
152
- // then
153
- expect(participantShape).to.have.bounds(originalBounds);
154
- }));
155
-
156
-
157
- it('should redo', inject(function(modeling, commandStack) {
158
-
159
- // when
160
- modeling.moveElements([ startEventShape ], { x: -100, y: -100 }, participantShape);
161
- commandStack.undo();
162
- commandStack.redo();
163
-
164
- // then
165
- expect(participantShape).to.have.bounds({ x: 122, y: 71, width: 496, height: 267 });
166
- }));
167
-
168
- });
169
-
170
- });
171
-
172
-
173
- describe('after moving multiple elements', function() {
174
-
175
- it('should expand the right edge', inject(function(modeling, selection) {
176
-
177
- // when
178
- modeling.moveElements([ taskShape, startEventShape ], { x: 200, y: 0 }, participantShape);
179
-
180
- // then
181
- var expectedBounds = assign(originalBounds, { width: 625 });
182
-
183
- expect(participantShape).to.have.bounds(expectedBounds);
184
- }));
185
-
186
-
187
- it('should expand the bottom edge', inject(function(modeling, selection) {
188
-
189
- // when
190
- modeling.moveElements([ taskShape, startEventShape ], { x: 0, y: 48 }, participantShape);
191
-
192
- // then
193
- var expectedBounds = assign(originalBounds, { height: 237 });
194
-
195
- expect(participantShape).to.have.bounds(expectedBounds);
196
- }));
197
-
198
- });
199
-
200
-
201
- describe('after appending', function() {
202
-
203
- it('should expand the bottom right edges', inject(function(modeling) {
204
-
205
- // when
206
- modeling.appendShape(taskShape, { type: 'bpmn:Task' }, { x: 660, y: 350 }, participantShape);
207
-
208
- // then
209
- var expectedBounds = assign(originalBounds, { width: 563, height: 290 });
210
-
211
- expect(participantShape).to.have.bounds(expectedBounds);
212
- }));
213
-
214
-
215
- it('should undo resizing', inject(function(modeling, commandStack) {
216
-
217
- // given
218
- modeling.appendShape(taskShape, { type: 'bpmn:Task' }, { x: 660, y: 250 }, participantShape);
219
-
220
- // when
221
- commandStack.undo();
222
-
223
- // then
224
- expect(participantShape).to.have.bounds(originalBounds);
225
- }));
226
-
227
-
228
- it('should redo resizing and restore shapes and connections',
229
- inject(function(modeling, commandStack) {
230
-
231
- // given
232
- var taskShape2 = modeling.appendShape(taskShape, { type: 'bpmn:Task' }, { x: 660, y: 250 }, participantShape);
233
-
234
- // when
235
- commandStack.undo();
236
- commandStack.redo();
237
-
238
- // then
239
- var expectedBounds = assign(originalBounds, { width: 563 });
240
-
241
- expect(participantShape).to.have.bounds(expectedBounds);
242
-
243
- expect(taskShape2).to.exist;
244
- expect(taskShape.outgoing).not.to.be.empty;
245
- expect(taskShape2.incoming).not.to.be.empty;
246
- })
247
- );
248
-
249
- });
250
-
251
-
252
- it('should not auto-resize when adding lane', inject(function(modeling) {
253
-
254
- // given
255
- var laneAttrs = {
256
- type: 'bpmn:Lane',
257
- width: 341,
258
- height: 178
259
- };
260
-
261
- // when
262
- modeling.createShape(laneAttrs, { x: 280, y: 200 }, participantShape);
263
-
264
- // then
265
- expect(participantShape).to.have.bounds(originalBounds);
266
- }));
267
-
268
-
269
- it('should not auto-resize when creating with { root: false } hint', inject(function(modeling) {
270
-
271
- // given
272
- var taskAttrs = { type: 'bpmn:Task' };
273
-
274
- // when
275
- modeling.createShape(taskAttrs, { x: 600, y: 320 }, participantShape, { root: false });
276
-
277
- // then
278
- expect(participantShape).to.have.bounds(originalBounds);
279
- }));
280
-
281
- });
282
-
283
-
284
- describe('lane', function() {
285
-
286
- var diagramXML = require('./AutoResize.lanes.bpmn');
287
-
288
- beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
289
-
290
-
291
- it('should fit new element', inject(function(elementRegistry, modeling) {
292
-
293
- // given
294
- var participantShape = elementRegistry.get('Participant_Lanes');
295
-
296
- // when
297
- modeling.createShape({ type: 'bpmn:Task' }, { x: 600, y: 320 }, participantShape);
298
-
299
- // then
300
- expect(participantShape).to.have.bounds({ x: 247, y: 160, width: 503, height: 260 });
301
- }));
302
-
303
-
304
- it('should fit multiple moved elements', inject(function(elementRegistry, modeling) {
305
-
306
- // given
307
- var participantShape = elementRegistry.get('Participant_Lanes'),
308
- taskShape = elementRegistry.get('Task_1'),
309
- startEventShape = elementRegistry.get('StartEvent_1');
310
-
311
- var originalBounds = getBounds(participantShape);
312
-
313
- // when
314
- modeling.moveElements([ taskShape, startEventShape ], { x: 200, y: 0 }, participantShape);
315
-
316
- // then
317
- var expectedBounds = assign(originalBounds, { width: 625 });
318
-
319
- expect(participantShape).to.have.bounds(expectedBounds);
320
- }));
321
-
322
- });
323
-
324
-
325
- describe('sub processes', function() {
326
-
327
- var diagramXML = require('./AutoResize.sub-processes.bpmn');
328
-
329
- beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
330
-
331
- it('should auto-resize after moving children', inject(function(elementRegistry, modeling) {
332
-
333
- // given
334
- var subProcessShape = elementRegistry.get('SubProcess_1'),
335
- taskShape = elementRegistry.get('Task_1'),
336
- startEventShape = elementRegistry.get('StartEvent_1');
337
-
338
- var originalBounds = getBounds(subProcessShape);
339
-
340
- // when
341
- modeling.moveElements([ taskShape, startEventShape ], { x: 200, y: 0 }, subProcessShape);
342
-
343
- // then
344
- var expectedBounds = assign(originalBounds, { width: 567 });
345
-
346
- expect(subProcessShape).to.have.bounds(expectedBounds);
347
- }));
348
-
349
-
350
- it('should auto-resize to fit new element', inject(function(elementRegistry, modeling) {
351
-
352
- // given
353
- var subProcessShape = elementRegistry.get('SubProcess_1');
354
-
355
- var originalBounds = getBounds(subProcessShape);
356
-
357
- // when
358
- modeling.createShape({ type: 'bpmn:Task' }, { x: 450, y: 250 }, subProcessShape);
359
-
360
- // then
361
- var expectedBounds = assign(originalBounds, { width: 480, height: 298 });
362
-
363
- expect(subProcessShape).to.have.bounds(expectedBounds);
364
- }));
365
-
366
-
367
- it('should auto-resize after dropping selection inside',
368
- inject(function(selection, move, dragging, elementRegistry, modeling) {
369
-
370
- // given
371
- var subProcessShape = elementRegistry.get('SubProcess_1'),
372
- taskShape = elementRegistry.get('Task_1'),
373
- startEventShape = elementRegistry.get('StartEvent_1');
374
-
375
- var originalBounds = getBounds(subProcessShape);
376
-
377
- // when
378
- selection.select([ taskShape, startEventShape ]);
379
-
380
- move.start(canvasEvent({ x: 265, y: 235 }), startEventShape);
381
-
382
- dragging.hover({
383
- element: subProcessShape,
384
- gfx: elementRegistry.getGraphics(subProcessShape)
385
- });
386
-
387
- dragging.move(canvasEvent({ x: 450, y: 235 }));
388
-
389
- dragging.end();
390
-
391
- // then
392
- var expectedBounds = assign(originalBounds, { width: 552 });
393
-
394
- expect(subProcessShape).to.have.bounds(expectedBounds);
395
- })
396
- );
397
-
398
-
399
- it('should not auto-resize after dropping selection outside',
400
- inject(function(selection, canvas, move, dragging, elementRegistry, modeling) {
401
-
402
- // given
403
- var subProcessShape = elementRegistry.get('SubProcess_1'),
404
- taskShape = elementRegistry.get('Task_1'),
405
- startEventShape = elementRegistry.get('StartEvent_1'),
406
- rootShape = canvas.getRootElement();
407
-
408
- var originalBounds = getBounds(subProcessShape);
409
-
410
- // when
411
- selection.select([ taskShape, startEventShape ]);
412
-
413
- move.start(canvasEvent({ x: 390, y: 110 }), taskShape);
414
-
415
- dragging.hover({
416
- element: rootShape,
417
- gfx: elementRegistry.getGraphics(rootShape)
418
- });
419
-
420
- dragging.move(canvasEvent({ x: 600, y: 110 }));
421
-
422
- dragging.end();
423
-
424
- // then
425
- expect(subProcessShape).to.have.bounds(originalBounds);
426
- })
427
- );
428
-
429
- });
430
-
431
-
432
- describe('after moving multiple elements', function() {
433
-
434
- var diagramXML = require('./AutoResize.multi-selection.bpmn');
435
-
436
- beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
437
-
438
- var taskShape_1,
439
- taskShape_2,
440
- subProcessShape_1,
441
- rootShape;
442
-
443
- beforeEach(inject(function(elementRegistry, canvas) {
444
- taskShape_1 = elementRegistry.get('Task_1');
445
- taskShape_2 = elementRegistry.get('Task_2');
446
- subProcessShape_1 = elementRegistry.get('SubProcess_1');
447
- rootShape = canvas.getRootElement();
448
- }));
449
-
450
-
451
- it('should not expand, if elements keep their parents (different original parents)', inject(function(modeling) {
452
-
453
- // given
454
- var originalBounds = getBounds(subProcessShape_1);
455
-
456
- // when
457
- modeling.moveElements([ taskShape_1, taskShape_2 ],
458
- { x: -100, y: 0 }, subProcessShape_1, { primaryShape: taskShape_1 });
459
-
460
- // then
461
- expect(subProcessShape_1).to.have.bounds(originalBounds);
462
- }));
463
-
464
-
465
- it('should expand non-primary parents', inject(function(modeling) {
466
-
467
- // given
468
- var originalBounds = getBounds(subProcessShape_1);
469
-
470
- // when
471
- modeling.moveElements([ taskShape_1, taskShape_2 ],
472
- { x: 100, y: 0 }, rootShape, { primaryShape: taskShape_2 });
473
-
474
- // then
475
- var expectedBounds = assign(originalBounds, { width: 525 });
476
- expect(subProcessShape_1).to.have.bounds(expectedBounds);
477
- }));
478
-
479
-
480
- it('should expand, if elements keep their parents (same original parent)', inject(function(modeling) {
481
-
482
- // given
483
- var originalBounds = getBounds(subProcessShape_1);
484
- modeling.moveElements([ taskShape_2 ], { x: -110, y: 135 }, subProcessShape_1);
485
-
486
- // when
487
- modeling.moveElements([ taskShape_1, taskShape_2 ],
488
- { x: -110, y: 0 }, subProcessShape_1, { primaryShape: taskShape_1 });
489
-
490
- // then
491
- var expectedBounds = assign(originalBounds, { x: 0, width: 444 });
492
- expect(subProcessShape_1).to.have.bounds(expectedBounds);
493
- }));
494
-
495
-
496
- it('should expand, if primary shape changes parent', inject(function(modeling) {
497
-
498
- // given
499
- var originalBounds = getBounds(subProcessShape_1);
500
-
501
- // when
502
- modeling.moveElements([ taskShape_1, taskShape_2 ],
503
- { x: 0, y: 50 }, subProcessShape_1, { primaryShape: taskShape_2 });
504
-
505
- // then
506
- var expectedBounds = assign(originalBounds, { y: 80, height: 317 });
507
- expect(subProcessShape_1).to.have.bounds(expectedBounds);
508
- }));
509
-
510
-
511
- it('should expand top and bottom edge, if primary shape changes parent', inject(function(modeling) {
512
-
513
- // given
514
- var originalBounds = getBounds(subProcessShape_1);
515
-
516
- // when
517
- modeling.moveElements([ taskShape_1, taskShape_2 ],
518
- { x: 0, y: 100 }, subProcessShape_1, { primaryShape: taskShape_2 });
519
-
520
- // then
521
- var expectedBounds = assign(originalBounds, { y: 130, height: 334 });
522
- expect(subProcessShape_1).to.have.bounds(expectedBounds);
523
- }));
524
-
525
- });
526
-
527
-
528
- describe('nested sub processes', function() {
529
-
530
- var diagramXML = require('./AutoResize.nested-sub-processes.bpmn');
531
-
532
- beforeEach(bootstrapModeler(diagramXML, {
533
- modules: testModules
534
- }));
535
-
536
-
537
- it('should recursively expand parent element', inject(function(elementRegistry, modeling) {
538
-
539
- var taskShape = elementRegistry.get('Task_1'),
540
- subProcessShape_2 = elementRegistry.get('SubProcess_2'),
541
- subProcessShape_3 = elementRegistry.get('SubProcess_3');
542
-
543
- var originalBounds = getBounds(subProcessShape_2);
544
-
545
- modeling.moveElements([taskShape], { x: 100, y: 0 }, subProcessShape_3);
546
-
547
- var expectedBounds = assign(originalBounds, { width: 755 });
548
-
549
- expect(subProcessShape_2).to.have.bounds(expectedBounds);
550
- }));
551
-
552
-
553
- it('should recursively expand last parent element', inject(function(elementRegistry, modeling) {
554
-
555
- var taskShape = elementRegistry.get('Task_1'),
556
- subProcessShape_1 = elementRegistry.get('SubProcess_1'),
557
- subProcessShape_3 = elementRegistry.get('SubProcess_3');
558
-
559
- var originalBounds = getBounds(subProcessShape_1);
560
-
561
- modeling.moveElements([ taskShape ], { x: 100, y: 0 }, subProcessShape_3);
562
-
563
- var expectedBounds = assign(originalBounds, { width: 875 });
564
-
565
- expect(subProcessShape_1).to.have.bounds(expectedBounds);
566
- }));
567
-
568
- });
569
-
570
- describe('space-tool', function() {
571
-
572
- var diagramXML = require('./AutoResize.space-tool.bpmn');
573
-
574
- var taskShape,
575
- participantShape,
576
- originalBounds;
577
-
578
- beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
579
-
580
- beforeEach(inject(function(elementRegistry) {
581
-
582
- taskShape = elementRegistry.get('Task_1');
583
- participantShape = elementRegistry.get('Participant_1');
584
-
585
- originalBounds = getBounds(participantShape);
586
-
587
- }));
588
-
589
-
590
- it('should not expand after space-tool', inject(function(modeling) {
591
-
592
- // given
593
- var delta = { x: 50, y: 0 },
594
- direction = 'e';
595
-
596
- // when
597
- modeling.createSpace([ taskShape ], [], delta, direction);
598
-
599
- // then
600
- var newBounds = getBounds(participantShape);
601
-
602
- expect(originalBounds).to.eql(newBounds);
603
- }));
604
-
605
- });
606
-
607
- });
1
+ 'use strict';
2
+
3
+ require('../../../TestHelper');
4
+
5
+ /* global bootstrapModeler, inject */
6
+
7
+ var pick = require('lodash/object/pick'),
8
+ assign = require('lodash/object/assign');
9
+
10
+ var autoResizeModule = require('../../../../lib/features/auto-resize'),
11
+ modelingModule = require('../../../../lib/features/modeling'),
12
+ createModule = require('diagram-js/lib/features/create'),
13
+ coreModule = require('../../../../lib/core'),
14
+ canvasEvent = require('../../../util/MockEvents').createCanvasEvent;
15
+
16
+ function getBounds(shape) {
17
+ return pick(shape, [ 'x', 'y', 'width', 'height' ]);
18
+ }
19
+
20
+
21
+ describe('features/auto-resize', function() {
22
+
23
+ var testModules = [ coreModule, modelingModule, autoResizeModule, createModule ];
24
+
25
+
26
+ describe('participant', function() {
27
+
28
+ var diagramXML = require('./AutoResize.participant.bpmn');
29
+
30
+ var taskShape,
31
+ participantShape,
32
+ startEventShape,
33
+ originalBounds;
34
+
35
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
36
+
37
+ beforeEach(inject(function(elementRegistry) {
38
+
39
+ taskShape = elementRegistry.get('Task_1');
40
+ participantShape = elementRegistry.get('Participant_1');
41
+ startEventShape = elementRegistry.get('StartEvent_1');
42
+
43
+ originalBounds = getBounds(participantShape);
44
+
45
+ expect(originalBounds).to.eql({ x: 247, y: 160, width: 371, height: 178 });
46
+
47
+ }));
48
+
49
+
50
+ describe('after moving', function() {
51
+
52
+ it('should expand the right edge', inject(function(modeling) {
53
+
54
+ // when
55
+ modeling.moveElements([ taskShape ], { x: 100, y: 0 }, participantShape);
56
+
57
+ // then
58
+ var expectedBounds = assign(originalBounds, { width: 525 });
59
+
60
+ expect(participantShape).to.have.bounds(expectedBounds);
61
+ }));
62
+
63
+
64
+ it('should expand the top edge', inject(function(modeling) {
65
+
66
+ // when
67
+ modeling.moveElements([ taskShape ], { x: 0, y: -50 }, participantShape);
68
+
69
+ // then
70
+ var expectedBounds = assign(originalBounds, { y: 99, height: 239 });
71
+
72
+ expect(participantShape).to.have.bounds(expectedBounds);
73
+ }));
74
+
75
+
76
+ it('should expand the bottom edge', inject(function(modeling) {
77
+
78
+ // when
79
+ modeling.moveElements([ taskShape ], { x: 0, y: 50 }, participantShape);
80
+
81
+ // then
82
+ var expectedBounds = assign(originalBounds, { height: 239 });
83
+
84
+ expect(participantShape).to.have.bounds(expectedBounds);
85
+ }));
86
+
87
+
88
+ it('should expand the left edge', inject(function(modeling) {
89
+
90
+ // when
91
+ modeling.moveElements([ startEventShape ], { x: -100, y: 0 }, participantShape);
92
+
93
+ // then
94
+ var expectedBounds = assign(originalBounds, { x: 122, width: 496 });
95
+
96
+ expect(participantShape).to.have.bounds(expectedBounds);
97
+ }));
98
+
99
+
100
+ it('should expand the bottom right edges', inject(function(modeling) {
101
+
102
+ // when
103
+ modeling.moveElements([ taskShape ], { x: 50, y: 50 }, participantShape);
104
+
105
+ // then
106
+ var expectedBounds = assign(originalBounds, { width: 475, height: 239 });
107
+
108
+ expect(participantShape).to.have.bounds(expectedBounds);
109
+ }));
110
+
111
+
112
+ it('should expand the top left edges', inject(function(modeling) {
113
+
114
+ // when
115
+ modeling.moveElements([ startEventShape ], { x: -100, y: -100 }, participantShape);
116
+
117
+ // then
118
+ expect(participantShape).to.have.bounds({ x: 122, y: 71, width: 496, height: 267 });
119
+ }));
120
+
121
+
122
+ it('should resize the parent on element/parent edge intersect', inject(function(modeling) {
123
+
124
+ // when
125
+ modeling.moveElements([ taskShape ], { x: 0, y: 49 }, participantShape);
126
+
127
+ // then
128
+ var expectedBounds = assign(originalBounds, { height: 238 });
129
+
130
+ expect(participantShape).to.have.bounds(expectedBounds);
131
+ }));
132
+
133
+
134
+ it('should not resize the parent if element is placed near the bottom', inject(function(modeling) {
135
+
136
+ // when
137
+ modeling.moveElements([ taskShape ], { x: 0, y: 47 }, participantShape);
138
+
139
+ // then
140
+ expect(participantShape).to.have.bounds(originalBounds);
141
+ }));
142
+
143
+
144
+ describe('undo / redo support', function() {
145
+
146
+ it('should undo', inject(function(modeling, commandStack) {
147
+
148
+ // when
149
+ modeling.moveElements([ startEventShape ], { x: -100, y: -100 }, participantShape);
150
+ commandStack.undo();
151
+
152
+ // then
153
+ expect(participantShape).to.have.bounds(originalBounds);
154
+ }));
155
+
156
+
157
+ it('should redo', inject(function(modeling, commandStack) {
158
+
159
+ // when
160
+ modeling.moveElements([ startEventShape ], { x: -100, y: -100 }, participantShape);
161
+ commandStack.undo();
162
+ commandStack.redo();
163
+
164
+ // then
165
+ expect(participantShape).to.have.bounds({ x: 122, y: 71, width: 496, height: 267 });
166
+ }));
167
+
168
+ });
169
+
170
+ });
171
+
172
+
173
+ describe('after moving multiple elements', function() {
174
+
175
+ it('should expand the right edge', inject(function(modeling, selection) {
176
+
177
+ // when
178
+ modeling.moveElements([ taskShape, startEventShape ], { x: 200, y: 0 }, participantShape);
179
+
180
+ // then
181
+ var expectedBounds = assign(originalBounds, { width: 625 });
182
+
183
+ expect(participantShape).to.have.bounds(expectedBounds);
184
+ }));
185
+
186
+
187
+ it('should expand the bottom edge', inject(function(modeling, selection) {
188
+
189
+ // when
190
+ modeling.moveElements([ taskShape, startEventShape ], { x: 0, y: 48 }, participantShape);
191
+
192
+ // then
193
+ var expectedBounds = assign(originalBounds, { height: 237 });
194
+
195
+ expect(participantShape).to.have.bounds(expectedBounds);
196
+ }));
197
+
198
+ });
199
+
200
+
201
+ describe('after appending', function() {
202
+
203
+ it('should expand the bottom right edges', inject(function(modeling) {
204
+
205
+ // when
206
+ modeling.appendShape(taskShape, { type: 'bpmn:Task' }, { x: 660, y: 350 }, participantShape);
207
+
208
+ // then
209
+ var expectedBounds = assign(originalBounds, { width: 563, height: 290 });
210
+
211
+ expect(participantShape).to.have.bounds(expectedBounds);
212
+ }));
213
+
214
+
215
+ it('should undo resizing', inject(function(modeling, commandStack) {
216
+
217
+ // given
218
+ modeling.appendShape(taskShape, { type: 'bpmn:Task' }, { x: 660, y: 250 }, participantShape);
219
+
220
+ // when
221
+ commandStack.undo();
222
+
223
+ // then
224
+ expect(participantShape).to.have.bounds(originalBounds);
225
+ }));
226
+
227
+
228
+ it('should redo resizing and restore shapes and connections',
229
+ inject(function(modeling, commandStack) {
230
+
231
+ // given
232
+ var taskShape2 = modeling.appendShape(taskShape, { type: 'bpmn:Task' }, { x: 660, y: 250 }, participantShape);
233
+
234
+ // when
235
+ commandStack.undo();
236
+ commandStack.redo();
237
+
238
+ // then
239
+ var expectedBounds = assign(originalBounds, { width: 563 });
240
+
241
+ expect(participantShape).to.have.bounds(expectedBounds);
242
+
243
+ expect(taskShape2).to.exist;
244
+ expect(taskShape.outgoing).not.to.be.empty;
245
+ expect(taskShape2.incoming).not.to.be.empty;
246
+ })
247
+ );
248
+
249
+ });
250
+
251
+
252
+ it('should not auto-resize when adding lane', inject(function(modeling) {
253
+
254
+ // given
255
+ var laneAttrs = {
256
+ type: 'bpmn:Lane',
257
+ width: 341,
258
+ height: 178
259
+ };
260
+
261
+ // when
262
+ modeling.createShape(laneAttrs, { x: 280, y: 200 }, participantShape);
263
+
264
+ // then
265
+ expect(participantShape).to.have.bounds(originalBounds);
266
+ }));
267
+
268
+
269
+ it('should not auto-resize when creating with { root: false } hint', inject(function(modeling) {
270
+
271
+ // given
272
+ var taskAttrs = { type: 'bpmn:Task' };
273
+
274
+ // when
275
+ modeling.createShape(taskAttrs, { x: 600, y: 320 }, participantShape, { root: false });
276
+
277
+ // then
278
+ expect(participantShape).to.have.bounds(originalBounds);
279
+ }));
280
+
281
+ });
282
+
283
+
284
+ describe('lane', function() {
285
+
286
+ var diagramXML = require('./AutoResize.lanes.bpmn');
287
+
288
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
289
+
290
+
291
+ it('should fit new element', inject(function(elementRegistry, modeling) {
292
+
293
+ // given
294
+ var participantShape = elementRegistry.get('Participant_Lanes');
295
+
296
+ // when
297
+ modeling.createShape({ type: 'bpmn:Task' }, { x: 600, y: 320 }, participantShape);
298
+
299
+ // then
300
+ expect(participantShape).to.have.bounds({ x: 247, y: 160, width: 503, height: 260 });
301
+ }));
302
+
303
+
304
+ it('should fit multiple moved elements', inject(function(elementRegistry, modeling) {
305
+
306
+ // given
307
+ var participantShape = elementRegistry.get('Participant_Lanes'),
308
+ taskShape = elementRegistry.get('Task_1'),
309
+ startEventShape = elementRegistry.get('StartEvent_1');
310
+
311
+ var originalBounds = getBounds(participantShape);
312
+
313
+ // when
314
+ modeling.moveElements([ taskShape, startEventShape ], { x: 200, y: 0 }, participantShape);
315
+
316
+ // then
317
+ var expectedBounds = assign(originalBounds, { width: 625 });
318
+
319
+ expect(participantShape).to.have.bounds(expectedBounds);
320
+ }));
321
+
322
+ });
323
+
324
+
325
+ describe('sub processes', function() {
326
+
327
+ var diagramXML = require('./AutoResize.sub-processes.bpmn');
328
+
329
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
330
+
331
+ it('should auto-resize after moving children', inject(function(elementRegistry, modeling) {
332
+
333
+ // given
334
+ var subProcessShape = elementRegistry.get('SubProcess_1'),
335
+ taskShape = elementRegistry.get('Task_1'),
336
+ startEventShape = elementRegistry.get('StartEvent_1');
337
+
338
+ var originalBounds = getBounds(subProcessShape);
339
+
340
+ // when
341
+ modeling.moveElements([ taskShape, startEventShape ], { x: 200, y: 0 }, subProcessShape);
342
+
343
+ // then
344
+ var expectedBounds = assign(originalBounds, { width: 567 });
345
+
346
+ expect(subProcessShape).to.have.bounds(expectedBounds);
347
+ }));
348
+
349
+
350
+ it('should auto-resize to fit new element', inject(function(elementRegistry, modeling) {
351
+
352
+ // given
353
+ var subProcessShape = elementRegistry.get('SubProcess_1');
354
+
355
+ var originalBounds = getBounds(subProcessShape);
356
+
357
+ // when
358
+ modeling.createShape({ type: 'bpmn:Task' }, { x: 450, y: 250 }, subProcessShape);
359
+
360
+ // then
361
+ var expectedBounds = assign(originalBounds, { width: 480, height: 298 });
362
+
363
+ expect(subProcessShape).to.have.bounds(expectedBounds);
364
+ }));
365
+
366
+
367
+ it('should auto-resize after dropping selection inside',
368
+ inject(function(selection, move, dragging, elementRegistry, modeling) {
369
+
370
+ // given
371
+ var subProcessShape = elementRegistry.get('SubProcess_1'),
372
+ taskShape = elementRegistry.get('Task_1'),
373
+ startEventShape = elementRegistry.get('StartEvent_1');
374
+
375
+ var originalBounds = getBounds(subProcessShape);
376
+
377
+ // when
378
+ selection.select([ taskShape, startEventShape ]);
379
+
380
+ move.start(canvasEvent({ x: 265, y: 235 }), startEventShape);
381
+
382
+ dragging.hover({
383
+ element: subProcessShape,
384
+ gfx: elementRegistry.getGraphics(subProcessShape)
385
+ });
386
+
387
+ dragging.move(canvasEvent({ x: 450, y: 235 }));
388
+
389
+ dragging.end();
390
+
391
+ // then
392
+ var expectedBounds = assign(originalBounds, { width: 552 });
393
+
394
+ expect(subProcessShape).to.have.bounds(expectedBounds);
395
+ })
396
+ );
397
+
398
+
399
+ it('should not auto-resize after dropping selection outside',
400
+ inject(function(selection, canvas, move, dragging, elementRegistry, modeling) {
401
+
402
+ // given
403
+ var subProcessShape = elementRegistry.get('SubProcess_1'),
404
+ taskShape = elementRegistry.get('Task_1'),
405
+ startEventShape = elementRegistry.get('StartEvent_1'),
406
+ rootShape = canvas.getRootElement();
407
+
408
+ var originalBounds = getBounds(subProcessShape);
409
+
410
+ // when
411
+ selection.select([ taskShape, startEventShape ]);
412
+
413
+ move.start(canvasEvent({ x: 390, y: 110 }), taskShape);
414
+
415
+ dragging.hover({
416
+ element: rootShape,
417
+ gfx: elementRegistry.getGraphics(rootShape)
418
+ });
419
+
420
+ dragging.move(canvasEvent({ x: 600, y: 110 }));
421
+
422
+ dragging.end();
423
+
424
+ // then
425
+ expect(subProcessShape).to.have.bounds(originalBounds);
426
+ })
427
+ );
428
+
429
+ });
430
+
431
+
432
+ describe('after moving multiple elements', function() {
433
+
434
+ var diagramXML = require('./AutoResize.multi-selection.bpmn');
435
+
436
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
437
+
438
+ var taskShape_1,
439
+ taskShape_2,
440
+ subProcessShape_1,
441
+ rootShape;
442
+
443
+ beforeEach(inject(function(elementRegistry, canvas) {
444
+ taskShape_1 = elementRegistry.get('Task_1');
445
+ taskShape_2 = elementRegistry.get('Task_2');
446
+ subProcessShape_1 = elementRegistry.get('SubProcess_1');
447
+ rootShape = canvas.getRootElement();
448
+ }));
449
+
450
+
451
+ it('should not expand, if elements keep their parents (different original parents)', inject(function(modeling) {
452
+
453
+ // given
454
+ var originalBounds = getBounds(subProcessShape_1);
455
+
456
+ // when
457
+ modeling.moveElements([ taskShape_1, taskShape_2 ],
458
+ { x: -100, y: 0 }, subProcessShape_1, { primaryShape: taskShape_1 });
459
+
460
+ // then
461
+ expect(subProcessShape_1).to.have.bounds(originalBounds);
462
+ }));
463
+
464
+
465
+ it('should expand non-primary parents', inject(function(modeling) {
466
+
467
+ // given
468
+ var originalBounds = getBounds(subProcessShape_1);
469
+
470
+ // when
471
+ modeling.moveElements([ taskShape_1, taskShape_2 ],
472
+ { x: 100, y: 0 }, rootShape, { primaryShape: taskShape_2 });
473
+
474
+ // then
475
+ var expectedBounds = assign(originalBounds, { width: 525 });
476
+ expect(subProcessShape_1).to.have.bounds(expectedBounds);
477
+ }));
478
+
479
+
480
+ it('should expand, if elements keep their parents (same original parent)', inject(function(modeling) {
481
+
482
+ // given
483
+ var originalBounds = getBounds(subProcessShape_1);
484
+ modeling.moveElements([ taskShape_2 ], { x: -110, y: 135 }, subProcessShape_1);
485
+
486
+ // when
487
+ modeling.moveElements([ taskShape_1, taskShape_2 ],
488
+ { x: -110, y: 0 }, subProcessShape_1, { primaryShape: taskShape_1 });
489
+
490
+ // then
491
+ var expectedBounds = assign(originalBounds, { x: 0, width: 444 });
492
+ expect(subProcessShape_1).to.have.bounds(expectedBounds);
493
+ }));
494
+
495
+
496
+ it('should expand, if primary shape changes parent', inject(function(modeling) {
497
+
498
+ // given
499
+ var originalBounds = getBounds(subProcessShape_1);
500
+
501
+ // when
502
+ modeling.moveElements([ taskShape_1, taskShape_2 ],
503
+ { x: 0, y: 50 }, subProcessShape_1, { primaryShape: taskShape_2 });
504
+
505
+ // then
506
+ var expectedBounds = assign(originalBounds, { y: 80, height: 317 });
507
+ expect(subProcessShape_1).to.have.bounds(expectedBounds);
508
+ }));
509
+
510
+
511
+ it('should expand top and bottom edge, if primary shape changes parent', inject(function(modeling) {
512
+
513
+ // given
514
+ var originalBounds = getBounds(subProcessShape_1);
515
+
516
+ // when
517
+ modeling.moveElements([ taskShape_1, taskShape_2 ],
518
+ { x: 0, y: 100 }, subProcessShape_1, { primaryShape: taskShape_2 });
519
+
520
+ // then
521
+ var expectedBounds = assign(originalBounds, { y: 130, height: 334 });
522
+ expect(subProcessShape_1).to.have.bounds(expectedBounds);
523
+ }));
524
+
525
+ });
526
+
527
+
528
+ describe('nested sub processes', function() {
529
+
530
+ var diagramXML = require('./AutoResize.nested-sub-processes.bpmn');
531
+
532
+ beforeEach(bootstrapModeler(diagramXML, {
533
+ modules: testModules
534
+ }));
535
+
536
+
537
+ it('should recursively expand parent element', inject(function(elementRegistry, modeling) {
538
+
539
+ var taskShape = elementRegistry.get('Task_1'),
540
+ subProcessShape_2 = elementRegistry.get('SubProcess_2'),
541
+ subProcessShape_3 = elementRegistry.get('SubProcess_3');
542
+
543
+ var originalBounds = getBounds(subProcessShape_2);
544
+
545
+ modeling.moveElements([taskShape], { x: 100, y: 0 }, subProcessShape_3);
546
+
547
+ var expectedBounds = assign(originalBounds, { width: 755 });
548
+
549
+ expect(subProcessShape_2).to.have.bounds(expectedBounds);
550
+ }));
551
+
552
+
553
+ it('should recursively expand last parent element', inject(function(elementRegistry, modeling) {
554
+
555
+ var taskShape = elementRegistry.get('Task_1'),
556
+ subProcessShape_1 = elementRegistry.get('SubProcess_1'),
557
+ subProcessShape_3 = elementRegistry.get('SubProcess_3');
558
+
559
+ var originalBounds = getBounds(subProcessShape_1);
560
+
561
+ modeling.moveElements([ taskShape ], { x: 100, y: 0 }, subProcessShape_3);
562
+
563
+ var expectedBounds = assign(originalBounds, { width: 875 });
564
+
565
+ expect(subProcessShape_1).to.have.bounds(expectedBounds);
566
+ }));
567
+
568
+ });
569
+
570
+ describe('space-tool', function() {
571
+
572
+ var diagramXML = require('./AutoResize.space-tool.bpmn');
573
+
574
+ var taskShape,
575
+ participantShape,
576
+ originalBounds;
577
+
578
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
579
+
580
+ beforeEach(inject(function(elementRegistry) {
581
+
582
+ taskShape = elementRegistry.get('Task_1');
583
+ participantShape = elementRegistry.get('Participant_1');
584
+
585
+ originalBounds = getBounds(participantShape);
586
+
587
+ }));
588
+
589
+
590
+ it('should not expand after space-tool', inject(function(modeling) {
591
+
592
+ // given
593
+ var delta = { x: 50, y: 0 },
594
+ direction = 'e';
595
+
596
+ // when
597
+ modeling.createSpace([ taskShape ], [], delta, direction);
598
+
599
+ // then
600
+ var newBounds = getBounds(participantShape);
601
+
602
+ expect(originalBounds).to.eql(newBounds);
603
+ }));
604
+
605
+ });
606
+
607
+ });