@aj-shadow/actorjs-app 0.0.0-aj-beta.221

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 (423) hide show
  1. package/.gitattributes +29 -0
  2. package/.vscode/launch.json +18 -0
  3. package/CHANGELOG.md +79 -0
  4. package/LICENSE.txt +96 -0
  5. package/README.md +86 -0
  6. package/contributors.txt +3 -0
  7. package/main.js +14 -0
  8. package/npm-post-install.js +618 -0
  9. package/npm-shrinkwrap.json +14 -0
  10. package/package.json +16 -0
  11. package/project/actorjs-project.tree +466 -0
  12. package/project/client/actions/action-actor-editor/action-actor-editor-file.js +101 -0
  13. package/project/client/actions/action-actor-editor/action-actor-editor-folder.js +41 -0
  14. package/project/client/actions/action-actor-editor/action-actor-editor-persistent-data.js +23 -0
  15. package/project/client/actions/action-actor-editor/action-actor-editor-project.js +23 -0
  16. package/project/client/actions/action-actor-editor/data-action-actor-editor-file.js +70 -0
  17. package/project/client/actions/action-actor-editor/data-action-actor-editor-folder.js +26 -0
  18. package/project/client/actions/action-actor-editor/data-action-actor-editor-project.js +27 -0
  19. package/project/client/actions/action-actor-editor/realtime-action-actors-editor.js +14 -0
  20. package/project/client/actions/action-addresses/action-addresses.js +180 -0
  21. package/project/client/actions/action-addresses/data-action-addresses.js +174 -0
  22. package/project/client/actions/action-console/action-console.js +11 -0
  23. package/project/client/actions/action-console/data-action-console.js +12 -0
  24. package/project/client/actions/action-content/action-content.js +101 -0
  25. package/project/client/actions/action-content/data-action-content.js +90 -0
  26. package/project/client/actions/action-function-under-test.js +45 -0
  27. package/project/client/actions/action-load/action-load.js +29 -0
  28. package/project/client/actions/action-load/data-action-load.js +4 -0
  29. package/project/client/actions/action-login/action-login.js +95 -0
  30. package/project/client/actions/action-login/data-action-login.js +83 -0
  31. package/project/client/actions/action-plugins/action-plugins.js +17 -0
  32. package/project/client/actions/action-plugins/data-action-plugins.js +20 -0
  33. package/project/client/actions/action-plus-services/action-plus-services.js +17 -0
  34. package/project/client/actions/action-plus-services/data-action-plus-services.js +20 -0
  35. package/project/client/actions/action-repos/action-repos.js +35 -0
  36. package/project/client/actions/action-repos/data-action-repos.js +42 -0
  37. package/project/client/actions/action-stack-editor/action-stack-editor-file.js +84 -0
  38. package/project/client/actions/action-stack-editor/action-stack-editor-folder.js +41 -0
  39. package/project/client/actions/action-stack-editor/action-stack-editor-persistent-data.js +23 -0
  40. package/project/client/actions/action-stack-editor/action-stack-editor-project.js +29 -0
  41. package/project/client/actions/action-stack-editor/data-action-stack-editor-file.js +49 -0
  42. package/project/client/actions/action-stack-editor/data-action-stack-editor-folder.js +26 -0
  43. package/project/client/actions/action-stack-editor/data-action-stack-editor-project.js +34 -0
  44. package/project/client/actions/action-sut-fut-filter.js +23 -0
  45. package/project/client/actions/action-system-under-test/action-system-under-test.js +164 -0
  46. package/project/client/actions/action-system-under-test/data-action-system-under-test.js +70 -0
  47. package/project/client/actions/action-test-case/action-test-case.js +323 -0
  48. package/project/client/actions/action-test-case/data-action-test-case.js +133 -0
  49. package/project/client/actions/action-test-case/realtime-action-test-case.js +69 -0
  50. package/project/client/actions/action-test-cases.js +49 -0
  51. package/project/client/actions/action-test-data/action-test-data.js +77 -0
  52. package/project/client/actions/action-test-data/data-action-test-data.js +62 -0
  53. package/project/client/actions/action-test-suite/action-test-suite.js +122 -0
  54. package/project/client/actions/action-test-suite/data-action-test-suite.js +76 -0
  55. package/project/client/actions/action-test-suite/realtime-action-test-suite.js +20 -0
  56. package/project/client/actions/action-test-suites.js +47 -0
  57. package/project/client/actor-default.js +18 -0
  58. package/project/client/communication/messages/messages-c-to-c/message-new-actor-index.js +15 -0
  59. package/project/client/communication/messages/messages-c-to-c/message-test-case-clear.js +15 -0
  60. package/project/client/communication/messages/messages-c-to-c/message-test-case-not-started.js +15 -0
  61. package/project/client/communication/messages/messages-c-to-c/message-test-suite-clear.js +15 -0
  62. package/project/client/components/footer/footer.jsx +94 -0
  63. package/project/client/components/header/header-status-login.jsx +78 -0
  64. package/project/client/components/header/header-status-staging-environment.jsx +132 -0
  65. package/project/client/components/header/header.jsx +27 -0
  66. package/project/client/components/header/header_icon.jsx +37 -0
  67. package/project/client/components/header/header_status.jsx +33 -0
  68. package/project/client/components/middle/abbreviation/middle-abbreviation-toolbar.jsx +126 -0
  69. package/project/client/components/middle/abbreviation/middle-abbreviation.jsx +27 -0
  70. package/project/client/components/middle/actor-editor/middle-actor-editor-sidebar.jsx +101 -0
  71. package/project/client/components/middle/actor-editor/middle-actor-editor-toolbar.jsx +612 -0
  72. package/project/client/components/middle/actor-editor/middle-actor-editor-view.jsx +157 -0
  73. package/project/client/components/middle/actor-editor/middle-actor-editor.jsx +38 -0
  74. package/project/client/components/middle/addresses/helpers/stage-filter.js +32 -0
  75. package/project/client/components/middle/addresses/middle-addresses-toolbar.jsx +183 -0
  76. package/project/client/components/middle/addresses/middle-addresses-view-client-address.jsx +67 -0
  77. package/project/client/components/middle/addresses/middle-addresses-view-client-interface.jsx +68 -0
  78. package/project/client/components/middle/addresses/middle-addresses-view-dns.jsx +67 -0
  79. package/project/client/components/middle/addresses/middle-addresses-view-dst.jsx +67 -0
  80. package/project/client/components/middle/addresses/middle-addresses-view-network-interface.jsx +67 -0
  81. package/project/client/components/middle/addresses/middle-addresses-view-ports.jsx +67 -0
  82. package/project/client/components/middle/addresses/middle-addresses-view-server-address.jsx +68 -0
  83. package/project/client/components/middle/addresses/middle-addresses-view-server-interface.jsx +68 -0
  84. package/project/client/components/middle/addresses/middle-addresses-view-src.jsx +67 -0
  85. package/project/client/components/middle/addresses/middle-addresses-view-srv.jsx +67 -0
  86. package/project/client/components/middle/addresses/middle-addresses-view-sut-address.jsx +67 -0
  87. package/project/client/components/middle/addresses/middle-addresses-view-sut-interface.jsx +67 -0
  88. package/project/client/components/middle/addresses/middle-addresses-view.jsx +155 -0
  89. package/project/client/components/middle/addresses/middle-addresses.jsx +39 -0
  90. package/project/client/components/middle/content/middle-content-toolbar.jsx +135 -0
  91. package/project/client/components/middle/content/middle-content-view-audio.jsx +60 -0
  92. package/project/client/components/middle/content/middle-content-view-documents.jsx +60 -0
  93. package/project/client/components/middle/content/middle-content-view-image.jsx +60 -0
  94. package/project/client/components/middle/content/middle-content-view-other.jsx +60 -0
  95. package/project/client/components/middle/content/middle-content-view-text.jsx +60 -0
  96. package/project/client/components/middle/content/middle-content-view-video.jsx +60 -0
  97. package/project/client/components/middle/content/middle-content-view.jsx +111 -0
  98. package/project/client/components/middle/content/middle-content.jsx +39 -0
  99. package/project/client/components/middle/middle-not-found.jsx +24 -0
  100. package/project/client/components/middle/middle-sut-fut-filter.jsx +90 -0
  101. package/project/client/components/middle/middle.jsx +90 -0
  102. package/project/client/components/middle/middle_sidebar.jsx +256 -0
  103. package/project/client/components/middle/plugins/middle-plugins.jsx +64 -0
  104. package/project/client/components/middle/plus-services/middle-plus-services.jsx +63 -0
  105. package/project/client/components/middle/repos/middle-repos-toolbar.jsx +137 -0
  106. package/project/client/components/middle/repos/middle-repos-view.jsx +47 -0
  107. package/project/client/components/middle/repos/middle-repos.jsx +36 -0
  108. package/project/client/components/middle/stack-editor/middle-stack-editor-sidebar.jsx +101 -0
  109. package/project/client/components/middle/stack-editor/middle-stack-editor-toolbar.jsx +525 -0
  110. package/project/client/components/middle/stack-editor/middle-stack-editor-view.jsx +156 -0
  111. package/project/client/components/middle/stack-editor/middle-stack-editor.jsx +38 -0
  112. package/project/client/components/middle/staging/helper.js +58 -0
  113. package/project/client/components/middle/staging/middle-staging-modal-interface-create.jsx +244 -0
  114. package/project/client/components/middle/staging/middle-staging-modal-interface-delete.jsx +186 -0
  115. package/project/client/components/middle/staging/middle-staging-toolbar.jsx +267 -0
  116. package/project/client/components/middle/staging/middle-staging-view.jsx +67 -0
  117. package/project/client/components/middle/staging/middle-staging.jsx +40 -0
  118. package/project/client/components/middle/staging/tabs/middle-staging-tab-logical.jsx +27 -0
  119. package/project/client/components/middle/staging/tabs/middle-staging-tab-report.jsx +62 -0
  120. package/project/client/components/middle/staging/tabs/middle-staging-tab-repos.jsx +96 -0
  121. package/project/client/components/middle/staging/tabs/middle-staging-tab-setup.jsx +73 -0
  122. package/project/client/components/middle/start/middle-start-toolbar.jsx +134 -0
  123. package/project/client/components/middle/start/middle-start-view.jsx +335 -0
  124. package/project/client/components/middle/start/middle-start.jsx +36 -0
  125. package/project/client/components/middle/system-under-test/middle-system-under-test-toolbar.jsx +171 -0
  126. package/project/client/components/middle/system-under-test/middle-system-under-test-view-multi.jsx +119 -0
  127. package/project/client/components/middle/system-under-test/middle-system-under-test-view-single.jsx +85 -0
  128. package/project/client/components/middle/system-under-test/middle-system-under-test.jsx +40 -0
  129. package/project/client/components/middle/system-under-test/tabs/middle-system-under-test-tab-instances.jsx +164 -0
  130. package/project/client/components/middle/system-under-test/tabs/middle-system-under-test-tab-nodes.jsx +160 -0
  131. package/project/client/components/middle/system-under-test/tabs/middle-system-under-test-tab-specification.jsx +463 -0
  132. package/project/client/components/middle/test-cases/general-helpers/actors-sorting.js +52 -0
  133. package/project/client/components/middle/test-cases/middle-test-cases-not-found.jsx +51 -0
  134. package/project/client/components/middle/test-cases/middle-test-cases-toolbar.jsx +804 -0
  135. package/project/client/components/middle/test-cases/middle-test-cases-view-columns.jsx +222 -0
  136. package/project/client/components/middle/test-cases/middle-test-cases-view-fut.jsx +105 -0
  137. package/project/client/components/middle/test-cases/middle-test-cases-view-recent.jsx +74 -0
  138. package/project/client/components/middle/test-cases/middle-test-cases-view-sut.jsx +98 -0
  139. package/project/client/components/middle/test-cases/middle-test-cases-view-tc.jsx +108 -0
  140. package/project/client/components/middle/test-cases/middle-test-cases-view-test-case.jsx +104 -0
  141. package/project/client/components/middle/test-cases/middle-test-cases.jsx +59 -0
  142. package/project/client/components/middle/test-cases/tabs/middle-test-cases-tab-analyze.jsx +289 -0
  143. package/project/client/components/middle/test-cases/tabs/middle-test-cases-tab-debug.jsx +699 -0
  144. package/project/client/components/middle/test-cases/tabs/middle-test-cases-tab-definition.jsx +103 -0
  145. package/project/client/components/middle/test-cases/tabs/middle-test-cases-tab-execution.jsx +321 -0
  146. package/project/client/components/middle/test-cases/tabs/middle-test-cases-tab-log.jsx +150 -0
  147. package/project/client/components/middle/test-cases/tabs/middle-test-cases-tab-sequence-diagram.jsx +160 -0
  148. package/project/client/components/middle/test-cases/tabs/middle-test-cases-tab-specification.jsx +472 -0
  149. package/project/client/components/middle/test-data/middle-test-data-toolbar.jsx +135 -0
  150. package/project/client/components/middle/test-data/middle-test-data-view-environment.jsx +64 -0
  151. package/project/client/components/middle/test-data/middle-test-data-view-general.jsx +61 -0
  152. package/project/client/components/middle/test-data/middle-test-data-view-output.jsx +60 -0
  153. package/project/client/components/middle/test-data/middle-test-data-view-system.jsx +61 -0
  154. package/project/client/components/middle/test-data/middle-test-data-view.jsx +98 -0
  155. package/project/client/components/middle/test-data/middle-test-data.jsx +39 -0
  156. package/project/client/components/middle/test-suites/middle-test-suites-toolbar.jsx +524 -0
  157. package/project/client/components/middle/test-suites/middle-test-suites-view-columns.jsx +222 -0
  158. package/project/client/components/middle/test-suites/middle-test-suites-view-fut.jsx +105 -0
  159. package/project/client/components/middle/test-suites/middle-test-suites-view-recent.jsx +74 -0
  160. package/project/client/components/middle/test-suites/middle-test-suites-view-sut.jsx +96 -0
  161. package/project/client/components/middle/test-suites/middle-test-suites-view-test-suite.jsx +593 -0
  162. package/project/client/components/middle/test-suites/middle-test-suites-view-ts.jsx +109 -0
  163. package/project/client/components/middle/test-suites/middle-test-suites.jsx +55 -0
  164. package/project/client/components/middle/test-suites/tabs/middle-test-suites-tab-definition.jsx +74 -0
  165. package/project/client/components/middle/test-suites/tabs/middle-test-suites-tab-execution.jsx +544 -0
  166. package/project/client/components/middle/test-suites/tabs/middle-test-suites-tab-log.jsx +118 -0
  167. package/project/client/components/middle/test-suites/tabs/middle-test-suites-tab-sequence-diagram.jsx +155 -0
  168. package/project/client/components/middle/user/middle-user-toolbar.jsx +32 -0
  169. package/project/client/components/middle/user/middle-user-view.jsx +32 -0
  170. package/project/client/components/middle/user/middle-user.jsx +39 -0
  171. package/project/client/components/middle/videos/middle-videos-view.jsx +135 -0
  172. package/project/client/components/middle/videos/middle-videos.jsx +32 -0
  173. package/project/client/css/components/component-video.css +15 -0
  174. package/project/client/css/components/modal-dialog-file.css +4 -0
  175. package/project/client/css/footer/footer-info.css +18 -0
  176. package/project/client/css/footer/footer-logo.css +39 -0
  177. package/project/client/css/from-code-editor/sidebar-dark.css +20 -0
  178. package/project/client/css/from-code-editor/sidebar-light.css +18 -0
  179. package/project/client/css/from-code-editor/tab.css +19 -0
  180. package/project/client/css/from-code-editor/tab_dark.css +9 -0
  181. package/project/client/css/from-code-editor/tab_light.css +9 -0
  182. package/project/client/css/from-code-editor/view-dark.css +11 -0
  183. package/project/client/css/from-code-editor/view-light.css +10 -0
  184. package/project/client/css/header/header-status.css +114 -0
  185. package/project/client/css/header/header.css +16 -0
  186. package/project/client/css/log-inner.css +46 -0
  187. package/project/client/css/main.css +4 -0
  188. package/project/client/css/middle/actor-editor.css +30 -0
  189. package/project/client/css/middle/address.css +57 -0
  190. package/project/client/css/middle/content.css +41 -0
  191. package/project/client/css/middle/login.css +118 -0
  192. package/project/client/css/middle/middle-start.css +5 -0
  193. package/project/client/css/middle/middle.css +13 -0
  194. package/project/client/css/middle/middle_sidebar.css +44 -0
  195. package/project/client/css/middle/middle_view.css +41 -0
  196. package/project/client/css/middle/stack-editor.css +30 -0
  197. package/project/client/css/middle/start/middle_start.css +94 -0
  198. package/project/client/css/middle/systems-under-test/systems-under-test-specification.css +48 -0
  199. package/project/client/css/middle/systems-under-test/systems-under-test.css +49 -0
  200. package/project/client/css/middle/test-case-and-test-suite/analyze.css +5 -0
  201. package/project/client/css/middle/test-case-and-test-suite/debug.css +281 -0
  202. package/project/client/css/middle/test-case-and-test-suite/execution.css +7 -0
  203. package/project/client/css/middle/test-case-and-test-suite/log.css +13 -0
  204. package/project/client/css/middle/test-case-and-test-suite/seq-dia.css +13 -0
  205. package/project/client/css/middle/test-cases/test-cases-analyze.css +9 -0
  206. package/project/client/css/middle/test-cases/test-cases-debug.css +61 -0
  207. package/project/client/css/middle/test-cases/test-cases-execution.css +4 -0
  208. package/project/client/css/middle/test-cases/test-cases-specification.css +82 -0
  209. package/project/client/css/middle/test-cases/test-cases.css +189 -0
  210. package/project/client/css/middle/test-data.css +52 -0
  211. package/project/client/css/middle/test-suites.css +525 -0
  212. package/project/client/css/middle/videos/videos.css +37 -0
  213. package/project/client/css/middle_test_cases_screen.css +8 -0
  214. package/project/client/css/middle_toolbar.css +10 -0
  215. package/project/client/css/repos.css +15 -0
  216. package/project/client/css/same_size_as_parent.css +6 -0
  217. package/project/client/css/test.css +116 -0
  218. package/project/client/html/index.html +61 -0
  219. package/project/client/main.jsx +59 -0
  220. package/project/client/stores/abbreviation-store.js +57 -0
  221. package/project/client/stores/actor-editor-store.js +758 -0
  222. package/project/client/stores/addresses-store.js +419 -0
  223. package/project/client/stores/console-store.js +27 -0
  224. package/project/client/stores/content-store.js +237 -0
  225. package/project/client/stores/documentation-store.js +14 -0
  226. package/project/client/stores/education-store.js +14 -0
  227. package/project/client/stores/filter-store.js +30 -0
  228. package/project/client/stores/function-under-test-store.js +58 -0
  229. package/project/client/stores/load-store.js +92 -0
  230. package/project/client/stores/login-store.js +232 -0
  231. package/project/client/stores/plugins-store.js +255 -0
  232. package/project/client/stores/plus-services-store.js +267 -0
  233. package/project/client/stores/repos-store.js +160 -0
  234. package/project/client/stores/stack-editor-store.js +691 -0
  235. package/project/client/stores/system-under-test-store.js +340 -0
  236. package/project/client/stores/test-case-store.js +1118 -0
  237. package/project/client/stores/test-cases-store.js +106 -0
  238. package/project/client/stores/test-data-store.js +181 -0
  239. package/project/client/stores/test-suite-store.js +438 -0
  240. package/project/client/stores/test-suites-store.js +86 -0
  241. package/project/client/stores/workshop-store.js +15 -0
  242. package/project/server/os/os-hardware.js +83 -0
  243. package/project/server/os/os-networks.js +50 -0
  244. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorBuild.js +185 -0
  245. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorFileDelete.js +21 -0
  246. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorFileGet.js +18 -0
  247. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorFileInlineGet.js +60 -0
  248. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorFileInlineUpdate.js +69 -0
  249. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorFileNew.js +396 -0
  250. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorFileRename.js +28 -0
  251. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorFileUpdate.js +18 -0
  252. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorFolderDelete.js +21 -0
  253. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorFolderNew.js +19 -0
  254. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorFolderUpdate.js +19 -0
  255. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorProjectGet.js +77 -0
  256. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorProjectToggle.js +18 -0
  257. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorProjectUpdate.js +22 -0
  258. package/project/server/plugin-data/actor-editor/plugin_data_ActorEditorStacksGet.js +54 -0
  259. package/project/server/plugin-data/addresses/plugin_data_AddressesClientAddressGet.js +19 -0
  260. package/project/server/plugin-data/addresses/plugin_data_AddressesClientAddressUpdate.js +19 -0
  261. package/project/server/plugin-data/addresses/plugin_data_AddressesClientInterfaceGet.js +19 -0
  262. package/project/server/plugin-data/addresses/plugin_data_AddressesClientInterfaceUpdate.js +19 -0
  263. package/project/server/plugin-data/addresses/plugin_data_AddressesDnsGet.js +20 -0
  264. package/project/server/plugin-data/addresses/plugin_data_AddressesDnsUpdate.js +19 -0
  265. package/project/server/plugin-data/addresses/plugin_data_AddressesDstGet.js +19 -0
  266. package/project/server/plugin-data/addresses/plugin_data_AddressesDstUpdate.js +19 -0
  267. package/project/server/plugin-data/addresses/plugin_data_AddressesNetworkInterfaceGet.js +19 -0
  268. package/project/server/plugin-data/addresses/plugin_data_AddressesNetworkInterfaceUpdate.js +19 -0
  269. package/project/server/plugin-data/addresses/plugin_data_AddressesPortsGet.js +19 -0
  270. package/project/server/plugin-data/addresses/plugin_data_AddressesPortsUpdate.js +19 -0
  271. package/project/server/plugin-data/addresses/plugin_data_AddressesServerAddressGet.js +19 -0
  272. package/project/server/plugin-data/addresses/plugin_data_AddressesServerAddressUpdate.js +19 -0
  273. package/project/server/plugin-data/addresses/plugin_data_AddressesServerInterfaceGet.js +19 -0
  274. package/project/server/plugin-data/addresses/plugin_data_AddressesServerInterfaceUpdate.js +19 -0
  275. package/project/server/plugin-data/addresses/plugin_data_AddressesSrcGet.js +38 -0
  276. package/project/server/plugin-data/addresses/plugin_data_AddressesSrcUpdate.js +19 -0
  277. package/project/server/plugin-data/addresses/plugin_data_AddressesSrvGet.js +19 -0
  278. package/project/server/plugin-data/addresses/plugin_data_AddressesSrvUpdate.js +19 -0
  279. package/project/server/plugin-data/addresses/plugin_data_AddressesSutAddressGet.js +19 -0
  280. package/project/server/plugin-data/addresses/plugin_data_AddressesSutAddressUpdate.js +19 -0
  281. package/project/server/plugin-data/addresses/plugin_data_AddressesSutInterfaceGet.js +19 -0
  282. package/project/server/plugin-data/addresses/plugin_data_AddressesSutInterfaceUpdate.js +19 -0
  283. package/project/server/plugin-data/console/plugin_data_ConsoleClear.js +20 -0
  284. package/project/server/plugin-data/content/plugin_data_ContentAudioGet.js +19 -0
  285. package/project/server/plugin-data/content/plugin_data_ContentAudioUpdate.js +19 -0
  286. package/project/server/plugin-data/content/plugin_data_ContentDocumentsGet.js +19 -0
  287. package/project/server/plugin-data/content/plugin_data_ContentDocumentsUpdate.js +19 -0
  288. package/project/server/plugin-data/content/plugin_data_ContentImageGet.js +19 -0
  289. package/project/server/plugin-data/content/plugin_data_ContentImageUpdate.js +19 -0
  290. package/project/server/plugin-data/content/plugin_data_ContentOtherGet.js +19 -0
  291. package/project/server/plugin-data/content/plugin_data_ContentOtherUpdate.js +19 -0
  292. package/project/server/plugin-data/content/plugin_data_ContentTextGet.js +19 -0
  293. package/project/server/plugin-data/content/plugin_data_ContentTextUpdate.js +19 -0
  294. package/project/server/plugin-data/content/plugin_data_ContentVideoGet.js +19 -0
  295. package/project/server/plugin-data/content/plugin_data_ContentVideoUpdate.js +19 -0
  296. package/project/server/plugin-data/function-under-test/plugin_data_FunctionUnderTestAdd.js +60 -0
  297. package/project/server/plugin-data/function-under-test/plugin_data_FunctionUnderTestDelete.js +20 -0
  298. package/project/server/plugin-data/function-under-test/plugin_data_FunctionUnderTestGet.js +92 -0
  299. package/project/server/plugin-data/login/plugin_data_LoginButtonsAdd.js +18 -0
  300. package/project/server/plugin-data/login/plugin_data_LoginButtonsGet.js +18 -0
  301. package/project/server/plugin-data/login/plugin_data_LoginButtonsUpdate.js +18 -0
  302. package/project/server/plugin-data/login/plugin_data_LoginCreateInterfaces.js +73 -0
  303. package/project/server/plugin-data/login/plugin_data_LoginDataGet.js +88 -0
  304. package/project/server/plugin-data/login/plugin_data_LoginDeleteInterfaces.js +38 -0
  305. package/project/server/plugin-data/login/plugin_data_LoginGet.js +22 -0
  306. package/project/server/plugin-data/login/plugin_data_LoginPing.js +72 -0
  307. package/project/server/plugin-data/login/plugin_data_LoginReposGet.js +18 -0
  308. package/project/server/plugin-data/login/plugin_data_LoginUpdate.js +44 -0
  309. package/project/server/plugin-data/login/plugin_data_LoginWsGet.js +39 -0
  310. package/project/server/plugin-data/plugins/plugin_data_PluginsBundleGet.js +34 -0
  311. package/project/server/plugin-data/plugins/plugin_data_PluginsGet.js +26 -0
  312. package/project/server/plugin-data/plus-services/plugin_data_PlusServicesBundleGet.js +34 -0
  313. package/project/server/plugin-data/plus-services/plugin_data_PlusServicesGet.js +78 -0
  314. package/project/server/plugin-data/repos/plugin_data_ReposAnalyzeLocalReposGet.js +142 -0
  315. package/project/server/plugin-data/repos/plugin_data_ReposClone.js +154 -0
  316. package/project/server/plugin-data/repos/plugin_data_ReposGet.js +18 -0
  317. package/project/server/plugin-data/repos/plugin_data_ReposVerifyGit.js +79 -0
  318. package/project/server/plugin-data/repos/repos.js +94 -0
  319. package/project/server/plugin-data/stack-editor/helpers/template.js +351 -0
  320. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorBuild.js +185 -0
  321. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorFileDelete.js +21 -0
  322. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorFileGet.js +18 -0
  323. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorFileNew.js +24 -0
  324. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorFileRename.js +27 -0
  325. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorFileUpdate.js +18 -0
  326. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorFolderDelete.js +21 -0
  327. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorFolderNew.js +19 -0
  328. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorFolderUpdate.js +19 -0
  329. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorProjectGet.js +77 -0
  330. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorProjectToggle.js +18 -0
  331. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorProjectUpdate.js +22 -0
  332. package/project/server/plugin-data/stack-editor/plugin_data_StackEditorWizard.js +43 -0
  333. package/project/server/plugin-data/system-under-test/plugin_data_SystemUnderTestAdd.js +72 -0
  334. package/project/server/plugin-data/system-under-test/plugin_data_SystemUnderTestDelete.js +20 -0
  335. package/project/server/plugin-data/system-under-test/plugin_data_SystemUnderTestGet.js +138 -0
  336. package/project/server/plugin-data/system-under-test/plugin_data_SystemUnderTestInstancesUpdate.js +21 -0
  337. package/project/server/plugin-data/system-under-test/plugin_data_SystemUnderTestNodesUpdate.js +21 -0
  338. package/project/server/plugin-data/system-under-test/plugin_data_SystemUnderTestRepoAdd.js +46 -0
  339. package/project/server/plugin-data/system-under-test/plugin_data_SystemUnderTestRepoGet.js +57 -0
  340. package/project/server/plugin-data/system-under-test/plugin_data_SystemUnderTestSpecificationUpdate.js +21 -0
  341. package/project/server/plugin-data/system-under-test/plugin_data_SystemUnderTestUpdate.js +24 -0
  342. package/project/server/plugin-data/test-case/debug.js +39 -0
  343. package/project/server/plugin-data/test-case/debugger-api.js +398 -0
  344. package/project/server/plugin-data/test-case/debugger.js +129 -0
  345. package/project/server/plugin-data/test-case/plugin_data_TestCaseActorsFileGet.js +26 -0
  346. package/project/server/plugin-data/test-case/plugin_data_TestCaseAdd.js +74 -0
  347. package/project/server/plugin-data/test-case/plugin_data_TestCaseAnalyze.js +451 -0
  348. package/project/server/plugin-data/test-case/plugin_data_TestCaseButtonsAdd.js +19 -0
  349. package/project/server/plugin-data/test-case/plugin_data_TestCaseButtonsGet.js +19 -0
  350. package/project/server/plugin-data/test-case/plugin_data_TestCaseButtonsUpdate.js +19 -0
  351. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugBreakpointClear.js +56 -0
  352. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugBreakpointClearAll.js +23 -0
  353. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugBreakpointSet.js +118 -0
  354. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugBreakpointUpdate.js +84 -0
  355. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugGet.js +40 -0
  356. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugGetMembers.js +40 -0
  357. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugGetProperty.js +47 -0
  358. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugGetSource.js +29 -0
  359. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugLoad.js +35 -0
  360. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugRun.js +52 -0
  361. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugStart.js +217 -0
  362. package/project/server/plugin-data/test-case/plugin_data_TestCaseDebugStop.js +23 -0
  363. package/project/server/plugin-data/test-case/plugin_data_TestCaseDelete.js +20 -0
  364. package/project/server/plugin-data/test-case/plugin_data_TestCaseExecutionStart.js +73 -0
  365. package/project/server/plugin-data/test-case/plugin_data_TestCaseGet.js +118 -0
  366. package/project/server/plugin-data/test-case/plugin_data_TestCaseRecentDelete.js +57 -0
  367. package/project/server/plugin-data/test-case/plugin_data_TestCaseRecentGet.js +20 -0
  368. package/project/server/plugin-data/test-case/plugin_data_TestCaseRecentUpdate.js +62 -0
  369. package/project/server/plugin-data/test-case/plugin_data_TestCaseRename.js +43 -0
  370. package/project/server/plugin-data/test-case/plugin_data_TestCaseSpecificationUpdate.js +21 -0
  371. package/project/server/plugin-data/test-case/plugin_data_TestCaseStacksGet.js +54 -0
  372. package/project/server/plugin-data/test-case/plugin_data_TestCaseUpdate.js +42 -0
  373. package/project/server/plugin-data/test-data/plugin_data_TestDataEnvironmentGet.js +72 -0
  374. package/project/server/plugin-data/test-data/plugin_data_TestDataEnvironmentUpdate.js +19 -0
  375. package/project/server/plugin-data/test-data/plugin_data_TestDataGeneralGet.js +19 -0
  376. package/project/server/plugin-data/test-data/plugin_data_TestDataGeneralUpdate.js +19 -0
  377. package/project/server/plugin-data/test-data/plugin_data_TestDataOutputGet.js +19 -0
  378. package/project/server/plugin-data/test-data/plugin_data_TestDataOutputUpdate.js +19 -0
  379. package/project/server/plugin-data/test-data/plugin_data_TestDataSystemGet.js +19 -0
  380. package/project/server/plugin-data/test-data/plugin_data_TestDataSystemUpdate.js +19 -0
  381. package/project/server/plugin-data/test-suite/plugin_data_TestSuiteAdd.js +51 -0
  382. package/project/server/plugin-data/test-suite/plugin_data_TestSuiteButtonsAdd.js +19 -0
  383. package/project/server/plugin-data/test-suite/plugin_data_TestSuiteButtonsGet.js +18 -0
  384. package/project/server/plugin-data/test-suite/plugin_data_TestSuiteButtonsUpdate.js +18 -0
  385. package/project/server/plugin-data/test-suite/plugin_data_TestSuiteDelete.js +20 -0
  386. package/project/server/plugin-data/test-suite/plugin_data_TestSuiteExecutionStart.js +401 -0
  387. package/project/server/plugin-data/test-suite/plugin_data_TestSuiteGet.js +110 -0
  388. package/project/server/plugin-data/test-suite/plugin_data_TestSuiteRecentDelete.js +54 -0
  389. package/project/server/plugin-data/test-suite/plugin_data_TestSuiteRecentGet.js +18 -0
  390. package/project/server/plugin-data/test-suite/plugin_data_TestSuiteRecentUpdate.js +59 -0
  391. package/project/server/plugin-data/test-suite/plugin_data_TestSuiteUpdate.js +42 -0
  392. package/project/server/plugin-service/platform-fs/plugin_service_Platform-Fs.js +65 -0
  393. package/project/server/plugin-service/platform-fs/verify-or-create-files.js +57 -0
  394. package/repos.json +19 -0
  395. package/server-test-case.js +50 -0
  396. package/settings - Copy (2).json +77 -0
  397. package/settings.json +63 -0
  398. package/workspace/Bundle-AppLayer-client.bld +77 -0
  399. package/workspace/Bundle-AppLayer-cs.bld +37 -0
  400. package/workspace/Client-AppLayer-client-jsx.bld +10 -0
  401. package/workspace/Client-AppLayer-client.bld +10 -0
  402. package/workspace/Client-AppLayer-cs.bld +10 -0
  403. package/workspace/Server-AppLayer-cs.bld +12 -0
  404. package/workspace/Server-AppLayer-server.bld +12 -0
  405. package/workspace/actorjs.wrk +336 -0
  406. package/workspace/clean-all.tsk +11 -0
  407. package/workspace/clean-build.tsk +8 -0
  408. package/workspace/clean-compiled.tsk +9 -0
  409. package/workspace/clean-dist.tsk +7 -0
  410. package/workspace/clean-generated.tsk +7 -0
  411. package/workspace/clean-node.tsk +7 -0
  412. package/workspace/clean-temp.tsk +7 -0
  413. package/workspace/client-css-actorjs-bundle.bld +10 -0
  414. package/workspace/list-debug.tsk +4 -0
  415. package/workspace/list-default.tsk +4 -0
  416. package/workspace/list-redebug.tsk +4 -0
  417. package/workspace/list-release.tsk +4 -0
  418. package/workspace/list-rerelease.tsk +4 -0
  419. package/workspace/list-start.tsk +4 -0
  420. package/workspace/server-html-rc.bld +10 -0
  421. package/workspace/server-image-actorjs-rc.bld +9 -0
  422. package/workspace/simple-help.tsk +5 -0
  423. package/workspace/simple-help.txt +39 -0
@@ -0,0 +1,804 @@
1
+
2
+ 'use strict';
3
+
4
+ import MiddleFilter from '../middle-sut-fut-filter';
5
+ import LoginStore from '../../../stores/login-store';
6
+ import TestCasesStore from '../../../stores/test-cases-store';
7
+ import TestCaseStore from '../../../stores/test-case-store';
8
+ import FunctionUnderTestStore from '../../../stores/function-under-test-store';
9
+ import SystemUnderTestStore from '../../../stores/system-under-test-store';
10
+ import { ActionSystemUnderTestAdd, ActionSystemUnderTestDelete, ActionSystemUnderTestRepoGet } from '../../../actions/action-system-under-test/action-system-under-test';
11
+ import { ActionFunctionUnderTestAdd, ActionFunctionUnderTestDelete } from '../../../actions/action-function-under-test';
12
+ import { ActionTestCaseAdd, ActionTestCaseDelete, ActionTestCaseRename, ActionTestCaseMarkup, ActionTestCaseMarkupSave, ActionTestCaseMarkupCancel, ActionTestCaseMarkupCopy, ActionTestCaseExecutionStart, ActionTestCaseExecutionStop, ActionTestCaseDebugStart, ActionTestCaseClear, ActionTestCaseButtonsUpdate } from '../../../actions/action-test-case/action-test-case';
13
+ import { ActionTestCasesSutClear, ActionTestCasesFutClear, ActionTestCasesTcClear } from '../../../actions/action-test-cases';
14
+ import Icon from 'z-abs-complayer-bootstrap-client/client/icons-inline/icon';
15
+ import ButtonNew from 'z-abs-complayer-bootstrap-client/client/button-new';
16
+ import Popover from 'z-abs-complayer-bootstrap-client/client/popover';
17
+ import ModalDialogAbstractionAdd from 'z-abs-complayer-modaldialog-client/client/modal-dialog-abstraction-add';
18
+ import ModalDialogAbstractionProperties from 'z-abs-complayer-modaldialog-client/client/modal-dialog-abstraction-properties';
19
+ import {RouterContext} from 'z-abs-complayer-router-client/client/react-component/router-context';
20
+ import ReactComponentRealtime from 'z-abs-corelayer-client/client/react-component/react-component-realtime';
21
+ import React from 'react';
22
+
23
+
24
+ export default class MiddleTestCasesToolbar extends ReactComponentRealtime {
25
+ constructor(props) {
26
+ super(props, [TestCaseStore, TestCasesStore, SystemUnderTestStore, LoginStore]);
27
+ this._modalDialogAbstractionAdd = null;
28
+ this._modalDialogAbstractionProperties = null;
29
+ this.boundKeyDown = this._keyDown.bind(this);
30
+ this.markupDisabledOpen = false;
31
+ this.markupDisabledSave = true;
32
+ this.markupDisabledHelp = false;
33
+ this.markupDisabledCancel = true;
34
+ this.repo = null;
35
+ }
36
+
37
+ static DEFAULT_MARKUP_SUT = {
38
+ markup: `#### ***Add a new SUT***
39
+
40
+ ***Set the SUT name and select the repo in which to put it.***`,
41
+ markupStyle: {
42
+ padding:'13px 8px 0px 11px'
43
+ }
44
+ };
45
+
46
+ static DEFAULT_MARKUP_FUT = {
47
+ markup: `#### ***Add a new FUT***
48
+
49
+ ***Set the FUT name.***`,
50
+ markupStyle: {
51
+ padding:'13px 0px 0px 18px'
52
+ }
53
+ };
54
+
55
+ static DEFAULT_MARKUP_TC = {
56
+ markup: `#### ***Add a Test Case***
57
+
58
+ ***Add Actors and TestData on your own.***`,
59
+ markupStyle: {
60
+ padding:'18px 8px 0px 14px'
61
+ }
62
+ };
63
+
64
+ didMount() {
65
+ window.addEventListener('keydown', this.boundKeyDown, true);
66
+ }
67
+
68
+ shouldUpdate(nextProps, nextState) {
69
+ return !this.shallowCompare(this.props.tab, nextProps.tab)
70
+ || !this.shallowCompare(this.props.sut, nextProps.sut)
71
+ || !this.shallowCompare(this.props.fut, nextProps.fut)
72
+ || !this.shallowCompare(this.props.tc, nextProps.tc)
73
+ || !this.shallowCompare(this.state.TestCaseStore.markup, nextState.TestCaseStore.markup)
74
+ || !this.shallowCompare(this.state.TestCaseStore.execution, nextState.TestCaseStore.execution)
75
+ || !this.shallowCompare(this.state.TestCaseStore.realtimeConnection, nextState.TestCaseStore.realtimeConnection)
76
+ || !this.shallowCompare(this.state.TestCaseStore.buttons.debug, nextState.TestCaseStore.buttons.debug)
77
+ || !this.shallowCompare(this.state.TestCaseStore.buttons.general, nextState.TestCaseStore.buttons.general)
78
+ || !this.shallowCompare(this.state.TestCasesStore, nextState.TestCasesStore)
79
+ || !this.deepCompare(this.state.SystemUnderTestStore.systemUnderTests, nextState.SystemUnderTestStore.systemUnderTests)
80
+ || !this.shallowCompareArrayValues(this.state.SystemUnderTestStore.repos, nextState.SystemUnderTestStore.repos)
81
+ || !this.shallowCompare(this.state.LoginStore.login, nextState.LoginStore.login);
82
+ }
83
+
84
+ willUnmount() {
85
+ window.removeEventListener('keydown', this.boundKeyDown, true);
86
+ }
87
+
88
+ _markupOpen() {
89
+ this.dispatch(TestCaseStore, new ActionTestCaseMarkup());
90
+ this.tabNavigation('definition');
91
+ }
92
+
93
+ _markupSave() {
94
+ this.dispatch(TestCaseStore, new ActionTestCaseMarkupSave(this.repo, this.props.sut, this.props.fut, this.props.tc));
95
+ this.tabNavigation('definition');
96
+ }
97
+
98
+ _markupHelp() {
99
+ this.context.history('../documentation/markup/markup-test-case');
100
+ }
101
+
102
+ _markupCancel() {
103
+ this.dispatch(TestCaseStore, new ActionTestCaseMarkupCancel());
104
+ this.tabNavigation('definition');
105
+ }
106
+
107
+ _keyDown(e) {
108
+ if(e.ctrlKey && 'o' === e.key) {
109
+ if(!this.markupDisabledOpen) {
110
+ e.preventDefault();
111
+ e.stopImmediatePropagation();
112
+ this._markupOpen();
113
+ }
114
+ }
115
+ else if(e.ctrlKey && e.shiftKey && '?' === e.key) {
116
+ if(!this.markupDisabledHelp) {
117
+ e.preventDefault();
118
+ e.stopImmediatePropagation();
119
+ this._markupHelp();
120
+ }
121
+ }
122
+ else if(e.ctrlKey && e.shiftKey && 'C' === e.key) {
123
+ if(!this.markupDisabledCancel) {
124
+ e.preventDefault();
125
+ e.stopImmediatePropagation();
126
+ this._markupCancel();
127
+ }
128
+ }
129
+ else if(e.ctrlKey && 's' === e.key) {
130
+ if(!this.markupDisabledSave) {
131
+ e.preventDefault();
132
+ e.stopImmediatePropagation();
133
+ this._markupSave();
134
+ }
135
+ }
136
+ else if(!e.ctrlKey && 'F5' === e.key) {
137
+ if(TestCaseStore.EXECUTION_NOT_RUNNING === this.state.TestCaseStore.execution) {
138
+ const breakOnEnterRun = this.state.TestCaseStore.buttons.debug.breakOnEnterRun;
139
+ const breakOnLeaveRun = this.state.TestCaseStore.buttons.debug.breakOnLeaveRun;
140
+ const breakOnIpEvent = this.state.TestCaseStore.buttons.debug.breakOnIpEvent;
141
+ const breakOnGuiEvent = this.state.TestCaseStore.buttons.debug.breakOnGuiEvent;
142
+ const debugType = this.state.TestCaseStore.buttons.debug.debugType;
143
+ e.preventDefault();
144
+ e.stopImmediatePropagation();
145
+ const breakOnLines = [];
146
+ if(breakOnEnterRun || breakOnLeaveRun) {
147
+ this._getAutoBreakeLines(breakOnLines, breakOnEnterRun, breakOnLeaveRun);
148
+ }
149
+ this.dispatch(TestCaseStore, new ActionTestCaseDebugStart(this.repo, this.props.sut, this.props.fut, this.props.tc, this.state.LoginStore.login.systemUnderTestInstance, this.state.LoginStore.login.nodes, {slow:false,asService:false,breakOnEnterRun:breakOnEnterRun,breakOnLeaveRun:breakOnLeaveRun,breakOnLines:breakOnLines,breakOnIpEvent:breakOnIpEvent,breakOnGuiEvent:breakOnGuiEvent,debugType:debugType}));
150
+ this.tabNavigation('debug');
151
+ }
152
+ }
153
+ else if(e.ctrlKey && e.shiftKey && 'A' === e.key) {
154
+ const disabled = 'tc' === this.state.TestCasesStore.current.view;
155
+ if(!disabled) {
156
+ e.preventDefault();
157
+ this._add(e);
158
+ }
159
+ }
160
+ else if(e.ctrlKey && e.shiftKey && 'D' === e.key) {
161
+ const disabled = 0 === this.state.TestCasesStore.systemUnderTestsChecked.size && 0 === this.state.TestCasesStore.functionUnderTestsChecked.size && 0 === this.state.TestCasesStore.testCasesChecked.size;
162
+ if(!disabled) {
163
+ e.preventDefault();
164
+ this._delete(e);
165
+ }
166
+ }
167
+ }
168
+
169
+ getShortText() {
170
+ if('none' === this.state.TestCasesStore.current.view) {
171
+ return 'sut';
172
+ }
173
+ else if('sut' === this.state.TestCasesStore.current.view) {
174
+ return 'fut';
175
+ }
176
+ else if('fut' === this.state.TestCasesStore.current.view) {
177
+ return 'tc';
178
+ }
179
+ }
180
+
181
+ getText() {
182
+ if('none' === this.state.TestCasesStore.current.view) {
183
+ return 'System Under Test';
184
+ }
185
+ else if('sut' === this.state.TestCasesStore.current.view) {
186
+ return 'Function Under Test';
187
+ }
188
+ else if('fut' === this.state.TestCasesStore.current.view) {
189
+ return 'Test Case';
190
+ }
191
+ }
192
+
193
+ _add(e) {
194
+ this._modalDialogAbstractionAdd.show();
195
+ }
196
+
197
+ _delete(e) {
198
+ const suts = [];
199
+ this.state.TestCasesStore.systemUnderTestsChecked.forEach((sut) => {
200
+ suts.push(sut);
201
+ });
202
+ const futs = [];
203
+ this.state.TestCasesStore.functionUnderTestsChecked.forEach((fut) => {
204
+ const found = suts.find((sut) => {
205
+ return sut.repo === fut.repo && sut.name === fut.sut;
206
+ });
207
+ if(!found) {
208
+ futs.push(fut);
209
+ }
210
+ });
211
+ const tcs = [];
212
+ this.state.TestCasesStore.testCasesChecked.forEach((tc) => {
213
+ const found = suts.find((sut) => {
214
+ return sut.name === tc.sut;
215
+ });
216
+ if(!found) {
217
+ const foundFut = futs.find((fut) => {
218
+ return fut.repo === tc.repo && fut.sut === tc.sut && fut.fut === tc.fut;
219
+ });
220
+ if(!foundFut) {
221
+ tcs.push(tc);
222
+ }
223
+ }
224
+ });
225
+ const isCurrentSut = suts.some((sut) => {
226
+ return sut.name === this.props.sut;
227
+ });
228
+ const isCurrentFut = futs.some((fut) => {
229
+ return fut.repo === this.repo && fut.sut === this.props.sut && fut.fut === this.props.fut;
230
+ });
231
+ this.dispatch(TestCasesStore, new ActionTestCasesSutClear());
232
+ this.dispatch(TestCasesStore, new ActionTestCasesFutClear());
233
+ this.dispatch(TestCasesStore, new ActionTestCasesTcClear());
234
+ if(0 !== suts.length) {
235
+ this.dispatch(SystemUnderTestStore, new ActionSystemUnderTestDelete(suts));
236
+ if(isCurrentSut) {
237
+ return this.context.history('');
238
+ }
239
+ }
240
+ if(0 !== futs.length) {
241
+ this.dispatch(FunctionUnderTestStore, new ActionFunctionUnderTestDelete(this.repo, this.props.sut, futs));
242
+ if(isCurrentFut) {
243
+ return this.context.history(`${this.props.sut}`);
244
+ }
245
+ }
246
+ if(0 !== tcs.length) {
247
+ this.dispatch(TestCaseStore, new ActionTestCaseDelete(tcs));
248
+ }
249
+ }
250
+
251
+ renderNewButton() {
252
+ if('tc' !== this.state.TestCasesStore.current.view) {
253
+ return (
254
+ <ButtonNew id="test_case_new" icon="icon-file-new" size="aj_btn_sm" text={this.getShortText()} colorMark="markup_color" placement="bottom" heading="Add" content={this.getText()} shortcut="Ctrl+Shift+A" disabled={!(0 === this.state.TestCasesStore.systemUnderTestsChecked.size && 0 === this.state.TestCasesStore.functionUnderTestsChecked.size && 0 === this.state.TestCasesStore.testCasesChecked.size)}
255
+ onClick={(e) => {
256
+ this._add(e);
257
+ }}
258
+ />
259
+ );
260
+ }
261
+ }
262
+
263
+ renderRemoveButton() {
264
+ if('tc' !== this.state.TestCasesStore.current.view) {
265
+ return (
266
+ <ButtonNew id="test_case_remove" icon="icon-file-delete" size="aj_btn_sm" text={this.getShortText()} colorMark="markup_color" placement="bottom" heading="Delete" content={this.getText()} shortcut="Ctrl+Shift+D" disabled={0 === this.state.TestCasesStore.systemUnderTestsChecked.size && 0 === this.state.TestCasesStore.functionUnderTestsChecked.size && 0 === this.state.TestCasesStore.testCasesChecked.size}
267
+ onClick={(e) => {
268
+ this._delete(e);
269
+ }}
270
+ />
271
+ );
272
+ }
273
+ }
274
+
275
+ renderButtonProperties() {
276
+ const enabled = (0 === this.state.TestCasesStore.systemUnderTestsChecked.size && 0 === this.state.TestCasesStore.functionUnderTestsChecked.size && 1 === this.state.TestCasesStore.testCasesChecked.size);
277
+ if('tc' !== this.state.TestCasesStore.current.view) {
278
+ return (
279
+ <ButtonNew id="test_case_properties" icon="icon-file-property" size="aj_btn_sm" text={this.getShortText()} colorMark="markup_color" placement="bottom" heading="Properties" content="Test Case" shortcut="Ctrl+Shift+R" disabled={!enabled}
280
+ onClick={(e) => {
281
+ this._modalDialogAbstractionProperties.show();
282
+ }}
283
+ />
284
+ );
285
+ }
286
+ }
287
+
288
+ renderButtonCopy() {
289
+ const enabled = (0 === this.state.TestCasesStore.systemUnderTestsChecked.size && 0 === this.state.TestCasesStore.functionUnderTestsChecked.size && 1 === this.state.TestCasesStore.testCasesChecked.size);
290
+ if('tc' !== this.state.TestCasesStore.current.view) {
291
+ return (
292
+ <ButtonNew id="test_case_copy" icon="icon-markup-copy" size="aj_btn_sm" text={this.getShortText()} colorMark="markup_color" placement="bottom" heading="Copy" content="Test Case" shortcut="Ctrl+Shift+R" disabled={!enabled}
293
+ onClick={(e) => {
294
+ //this._modalDialogAbstractionProperties.show(this.state.ActorEditorStore.current.file);
295
+ }}
296
+ />
297
+ );
298
+ }
299
+ }
300
+
301
+ renderMarkupOpenButton() {
302
+ if('tc' === this.state.TestCasesStore.current.view) {
303
+ this.markupDisabledOpen = this.state.TestCaseStore.realtimeConnection !== TestCaseStore.REALTIME_CONNECTION_OPEN || this.state.TestCaseStore.markup.definition || (TestCaseStore.EXECUTION_NOT_RUNNING !== this.state.TestCaseStore.execution);
304
+ return (
305
+ <ButtonNew id="test_case_markup_open" icon="icon-markup-open" size="aj_btn_sm" colorMark="markup_color" placement="bottom" heading="Open" content="Markup" shortcut="Ctrl+O" disabled={this.markupDisabledOpen}
306
+ onClick={(e) => {
307
+ this._markupOpen();
308
+ }}
309
+ />
310
+ );
311
+ }
312
+ }
313
+
314
+ renderMarkupSaveButton() {
315
+ if('tc' === this.state.TestCasesStore.current.view) {
316
+ this.markupDisabledSave = this.state.TestCaseStore.realtimeConnection !== TestCaseStore.REALTIME_CONNECTION_OPEN || this.state.TestCaseStore.markup.content === this.state.TestCaseStore.markup.contentOriginal;
317
+ return (
318
+ <ButtonNew id="test_case_markup_save" icon="icon-markup-save" size="aj_btn_sm" colorMark="markup_color" placement="bottom" heading="Save" content="Markup" shortcut="Ctrl+S" disabled={this.markupDisabledSave}
319
+ onClick={(e) => {
320
+ this._markupSave();
321
+ }}
322
+ />
323
+ );
324
+ }
325
+ }
326
+
327
+ renderMarkupHelpButton() {
328
+ if('tc' === this.state.TestCasesStore.current.view) {
329
+ this.markupDisabledHelp = this.state.TestCaseStore.markup.definition;
330
+ return (
331
+ <ButtonNew id="test_case_markup_help" icon="icon-markup-help" size="aj_btn_sm" colorMark="markup_color" placement="bottom" heading="Help" content="Markup" shortcut="Ctrl+?" disabled={this.markupDisabledHelp}
332
+ onClick={(e) => {
333
+ this._markupHelp();
334
+ }}
335
+ />
336
+ );
337
+ }
338
+ }
339
+
340
+ renderMarkupCancelButton() {
341
+ if('tc' === this.state.TestCasesStore.current.view) {
342
+ this.markupDisabledCancel = !this.state.TestCaseStore.markup.definition;
343
+ return (
344
+ <ButtonNew id="test_case_markup_clear" icon="icon-markup-close" size="aj_btn_sm" colorMark="markup_color" placement="bottom" heading="Cancel" content="Markup" shortcut="Ctrl+Shift+C" disabled={this.markupDisabledCancel}
345
+ onClick={(e) => {
346
+ this._markupCancel();
347
+ }}
348
+ />
349
+ );
350
+ }
351
+ }
352
+
353
+ renderMarkupCopyButton() {
354
+ if('tc' === this.state.TestCasesStore.current.view) {
355
+ this.markupDisabledCopy = this.state.TestCaseStore.realtimeConnection !== TestCaseStore.REALTIME_CONNECTION_OPEN || this.state.TestCaseStore.markup.definition || (TestCaseStore.EXECUTION_NOT_RUNNING !== this.state.TestCaseStore.execution);
356
+ return (
357
+ <ButtonNew id="test_case_markup_copy" icon="icon-markup-copy" size="aj_btn_sm" colorMark="markup_color" placement="bottom" heading="Copy" content="Markup" disabled={this.markupDisabledCopy}
358
+ onClick={(e) => {
359
+ this.dispatch(TestCaseStore, new ActionTestCaseMarkupCopy());
360
+ }}
361
+ />
362
+ );
363
+ }
364
+ }
365
+
366
+ renderStartButton(tab, debug=false) {
367
+ if('tc' === this.state.TestCasesStore.current.view) {
368
+ const asService = this.state.TestCaseStore.buttons.general.asService;
369
+ const slow = this.state.TestCaseStore.buttons.general.asService;
370
+ const breakOnEnterRun = debug && this.state.TestCaseStore.buttons.debug.breakOnEnterRun;
371
+ const breakOnLeaveRun = debug && this.state.TestCaseStore.buttons.debug.breakOnLeaveRun;
372
+ const breakOnIpEvent = this.state.TestCaseStore.buttons.debug.breakOnIpEvent;
373
+ const breakOnGuiEvent = this.state.TestCaseStore.buttons.debug.breakOnGuiEvent;
374
+ const debugType = this.state.TestCaseStore.buttons.debug.debugType;
375
+ const shortcut = debug ? 'F5' : undefined;
376
+ const content = `in the ${tab} tab${asService ? ', as a service' : ''}`;
377
+ return (
378
+ <ButtonNew id={`test_case_start_${tab}`} colorMark={`test_case_start_${tab}`} icon="icon-execution-play" size="aj_btn_sm" placement="bottom" heading="Run" content={content} shortcut={shortcut} disabled={this._isRunning() || this.state.LoginStore.login.systemUnderTest !== this.props.sut}
379
+ onClick={(e) => {
380
+ if(!debug) {
381
+ this.dispatch(TestCaseStore, new ActionTestCaseExecutionStart(this.repo, this.props.sut, this.props.fut, this.props.tc, this.state.LoginStore.login.systemUnderTestInstance, this.state.LoginStore.login.nodes, {slow:false,asService:asService}));
382
+ }
383
+ else {
384
+ const breakOnLines = [];
385
+ if(breakOnEnterRun || breakOnLeaveRun) {
386
+ this._getAutoBreakeLines(breakOnLines, breakOnEnterRun, breakOnLeaveRun);
387
+ }
388
+ this.dispatch(TestCaseStore, new ActionTestCaseDebugStart(this.repo, this.props.sut, this.props.fut, this.props.tc, this.state.LoginStore.login.systemUnderTestInstance, this.state.LoginStore.login.nodes, {slow:false,asService:asService,breakOnEnterRun:breakOnEnterRun,breakOnLeaveRun:breakOnLeaveRun,breakOnLines:breakOnLines,breakOnIpEvent:breakOnIpEvent,breakOnGuiEvent:breakOnGuiEvent,debugType:debugType}));
389
+ }
390
+ this.tabNavigation(tab);
391
+ }}
392
+ />
393
+ );
394
+ }
395
+ }
396
+
397
+ renderPauseOnEnterRunButton() {
398
+ if('tc' === this.state.TestCasesStore.current.view) {
399
+ return (
400
+ <ButtonNew id="test_case_debug_enter" colorMark="test_case_debug_enter" icon="icon-debug-enter" size="aj_btn_xxs" active={this.state.TestCaseStore.buttons.debug.breakOnEnterRun} placement="bottom" heading="Break" content={'on enter *run()'}
401
+ onClick={(e) => {
402
+ if(!this._isRunning()) {
403
+ this.dispatch(TestCaseStore, new ActionTestCaseButtonsUpdate('debug', 'breakOnEnterRun', !this.state.TestCaseStore.buttons.debug.breakOnEnterRun));
404
+ }
405
+ }}
406
+ />
407
+ );
408
+ }
409
+ }
410
+
411
+ renderPauseOnLeaveRunButton() {
412
+ if('tc' === this.state.TestCasesStore.current.view) {
413
+ return (
414
+ <ButtonNew id="test_case_debug_leave" colorMark="test_case_debug_leave" icon="icon-debug-leave" size="aj_btn_xxs" active={this.state.TestCaseStore.buttons.debug.breakOnLeaveRun} placement="bottom" heading="Break" content={'on leave *run()'}
415
+ onClick={(e) => {
416
+ if(!this._isRunning()) {
417
+ this.dispatch(TestCaseStore, new ActionTestCaseButtonsUpdate('debug', 'breakOnLeaveRun', !this.state.TestCaseStore.buttons.debug.breakOnLeaveRun));
418
+ }
419
+ }}
420
+ />
421
+ );
422
+ }
423
+ }
424
+
425
+ renderPauseOnIpEventButton() {
426
+ if('tc' === this.state.TestCasesStore.current.view) {
427
+ return (
428
+ <ButtonNew id="test_case_debug_ip" colorMark="test_case_debug_ip" icon="icon-debug-ip" size="aj_btn_xxs" active={this.state.TestCaseStore.buttons.debug.breakOnIpEvent} placement="bottom" heading="Break" content={'on ip event'}
429
+ onClick={(e) => {
430
+ if(!this._isRunning()) {
431
+ this.dispatch(TestCaseStore, new ActionTestCaseButtonsUpdate('debug', 'breakOnIpEvent', !this.state.TestCaseStore.buttons.debug.breakOnIpEvent));
432
+ }
433
+ }}
434
+ />
435
+ );
436
+ }
437
+ }
438
+
439
+ renderPauseOnGuiEventButton() {
440
+ if('tc' === this.state.TestCasesStore.current.view) {
441
+ return (
442
+ <ButtonNew id="test_case_debug_gui" colorMark="test_case_debug_gui" icon="icon-debug-gui" size="aj_btn_xxs" active={this.state.TestCaseStore.buttons.debug.breakOnGuiEvent} placement="bottom" heading="Break" content={'on gui event'}
443
+ onClick={(e) => {
444
+ if(!this._isRunning()) {
445
+ this.dispatch(TestCaseStore, new ActionTestCaseButtonsUpdate('debug', 'breakOnGuiEvent', !this.state.TestCaseStore.buttons.debug.breakOnGuiEvent));
446
+ }
447
+ }}
448
+ />
449
+ );
450
+ }
451
+ }
452
+
453
+ renderDebugLocalButton() {
454
+ if('tc' === this.state.TestCasesStore.current.view) {
455
+ return (
456
+ <ButtonNew active={TestCaseStore.DEBUG_LOCAL === this.state.TestCaseStore.buttons.debug.debugType} size="aj_btn_xxs" placement="bottom" heading="Debugger" content={'local'}
457
+ onClick={(e) => {
458
+ if(!this._isRunning()) {
459
+ this.dispatch(TestCaseStore, new ActionTestCaseButtonsUpdate('debug', 'debugType', TestCaseStore.DEBUG_LOCAL));
460
+ }
461
+ }}
462
+ />
463
+ );
464
+ }
465
+ }
466
+
467
+ renderDebugRemoteButton() {
468
+ if('tc' === this.state.TestCasesStore.current.view) {
469
+ return (
470
+ <ButtonNew active={TestCaseStore.DEBUG_REMOTE === this.state.TestCaseStore.buttons.debug.debugType} size="aj_btn_xxs" placement="bottom" heading="Debugger" content={'remote'}
471
+ onClick={(e) => {
472
+ if(!this._isRunning()) {
473
+ this.dispatch(TestCaseStore, new ActionTestCaseButtonsUpdate('debug', 'debugType', TestCaseStore.DEBUG_REMOTE));
474
+ }
475
+ }}
476
+ />
477
+ );
478
+ }
479
+ }
480
+
481
+ renderAsServiceButton() {
482
+ if('tc' === this.state.TestCasesStore.current.view) {
483
+ return (
484
+ <ButtonNew id="test_case_as_service" colorMark="test_case_as_service" icon="icon-execution-as-service" size="aj_btn_xxs" active={this.state.TestCaseStore.buttons.general.asService} size="aj_btn_xxs" placement="bottom" heading="Execute" content={'as a service'}
485
+ onClick={(e) => {
486
+ if(!this._isRunning()) {
487
+ this.dispatch(TestCaseStore, new ActionTestCaseButtonsUpdate('general', 'asService', !this.state.TestCaseStore.buttons.general.asService));
488
+ }
489
+ }}
490
+ />
491
+ );
492
+ }
493
+ }
494
+
495
+ renderWithLogsButton() {
496
+ if('tc' === this.state.TestCasesStore.current.view) {
497
+ return (
498
+ <ButtonNew id="test_case_logs" colorMark="test_case_logs" icon="icon-execution-logs" size="aj_btn_xxs" active={this.state.TestCaseStore.buttons.general.withLogs} size="aj_btn_xxs" placement="bottom" heading="Execute" content={'with logs'}
499
+ onClick={(e) => {
500
+ if(!this._isRunning()) {
501
+ this.dispatch(TestCaseStore, new ActionTestCaseButtonsUpdate('general', 'withLogs', !this.state.TestCaseStore.buttons.general.withLogs));
502
+ }
503
+ }}
504
+ />
505
+ );
506
+ }
507
+ }
508
+
509
+ renderStartSlowMotionButton(tab, debug=false) {
510
+ if('tc' === this.state.TestCasesStore.current.view) {
511
+ const breakOnEnterRun = debug && this.state.TestCaseStore.buttons.debug.breakOnEnterRun;
512
+ const breakOnLeaveRun = debug && this.state.TestCaseStore.buttons.debug.breakOnLeaveRun;
513
+ const breakOnIpEvent = this.state.TestCaseStore.buttons.debug.breakOnIpEvent;
514
+ const breakOnGuiEvent = this.state.TestCaseStore.buttons.debug.breakOnGuiEvent;
515
+ const slowOnIpEvent = this.state.TestCaseStore.buttons.general.slowOnIpEvent;
516
+ const slowOnGuiEvent = this.state.TestCaseStore.buttons.general.slowOnGuiEvent;
517
+ return (
518
+ <ButtonNew id={`test_case_start_slow_motion_${tab}`} colorMark={`test_case_start_${tab}`} icon="icon-execution-play-slow" size="aj_btn_sm" placement="bottom" heading="Run Slow Motion" content="in current tab" disabled={this._isRunning() || this.state.LoginStore.login.systemUnderTest !== this.props.sut}
519
+ onClick={(e) => {
520
+ //if(!debug) {
521
+ this.dispatch(TestCaseStore, new ActionTestCaseExecutionStart(this.repo, this.props.sut, this.props.fut, this.props.tc, this.state.LoginStore.login.systemUnderTestInstance, this.state.LoginStore.login.nodes, {slow:true,asService:false,slowOnIpEvent:slowOnIpEvent,slowOnGuiEvent:slowOnGuiEvent}));
522
+ /*}
523
+ else {
524
+ const breakOnLines = [];
525
+ if(breakOnEnterRun || breakOnLeaveRun) {
526
+ this._getAutoBreakeLines(breakOnLines, breakOnEnterRun, breakOnLeaveRun);
527
+ }
528
+ this.dispatch(TestCaseStore, new ActionTestCaseDebugStart(this.repo, this.props.sut, this.props.fut, this.props.tc, this.state.LoginStore.login.systemUnderTestInstance, this.state.LoginStore.login.nodes, {slow:true,asService:false,breakOnEnterRun:breakOnEnterRun,breakOnLeaveRun:breakOnLeaveRun,breakOnLines:breakOnLines,breakOnIpEvent:breakOnIpEvent,breakOnGuiEvent:breakOnGuiEvent}));
529
+ }*/
530
+ }}
531
+ />
532
+ );
533
+ }
534
+ }
535
+
536
+ renderSlowOnIpEventButton() {
537
+ if('tc' === this.state.TestCasesStore.current.view) {
538
+ return (
539
+ <ButtonNew id="test_case_start_ip_slow_motion" colorMark="test_case_ip_slow" icon="icon-execution-ip-slow" size="aj_btn_xxs" active={this.state.TestCaseStore.buttons.general.slowOnIpEvent} placement="bottom" heading="Slow" content={'on ip events'}
540
+ onClick={(e) => {
541
+ if(!this._isRunning()) {
542
+ this.dispatch(TestCaseStore, new ActionTestCaseButtonsUpdate('general', 'slowOnIpEvent', !this.state.TestCaseStore.buttons.general.slowOnIpEvent));
543
+ }
544
+ }}
545
+ />
546
+ );
547
+ }
548
+ }
549
+
550
+ renderSlowOnGuiEventButton() {
551
+ if('tc' === this.state.TestCasesStore.current.view) {
552
+ return (
553
+ <ButtonNew id="test_case_start_gui_slow_motion" colorMark="test_case_gui_slow" icon="icon-execution-gui-slow" size="aj_btn_xxs" active={this.state.TestCaseStore.buttons.general.slowOnGuiEvent} placement="bottom" heading="Slow" content={'on gui events'}
554
+ onClick={(e) => {
555
+ if(!this._isRunning()) {
556
+ this.dispatch(TestCaseStore, new ActionTestCaseButtonsUpdate('general', 'slowOnGuiEvent', !this.state.TestCaseStore.buttons.general.slowOnGuiEvent));
557
+ }
558
+ }}
559
+ />
560
+ );
561
+ }
562
+ }
563
+
564
+ renderStopButton(tab) {
565
+ if('tc' === this.state.TestCasesStore.current.view) {
566
+ return (
567
+ <ButtonNew id="test_case_stop" colorMark="test_case_stop" icon="icon-execution-stop" size="aj_btn_sm" placement="bottom" heading="Stop" content="in current tab" disabled={this.state.TestCaseStore.realtimeConnection !== TestCaseStore.REALTIME_CONNECTION_OPEN || this.state.TestCaseStore.markup.definition || (1 !== this.state.TestCaseStore.execution)}
568
+ onClick={(e) => {
569
+ this.dispatch(TestCaseStore, new ActionTestCaseExecutionStop());
570
+ }}
571
+ />
572
+ );
573
+ }
574
+ }
575
+
576
+ renderClearButton(tab) {
577
+ if('tc' === this.state.TestCasesStore.current.view) {
578
+ return (
579
+ <ButtonNew id={`test_case_clear_${tab}`} colorMark={`test_case_clear_${tab}`} icon="icon-execution-clear" size="aj_btn_sm" placement="bottom" heading="Clear" content={`In the ${tab} tab`} disabled={this.state.TestCaseStore.markup.definition || (0 !== this.state.TestCaseStore.execution)}
580
+ onClick={(e) => {
581
+ this.dispatch(TestCaseStore, new ActionTestCaseClear(tab));
582
+ this.tabNavigation(tab);
583
+ }}
584
+ />
585
+ );
586
+ }
587
+ }
588
+
589
+ renderClearAllButton() {
590
+ if('tc' === this.state.TestCasesStore.current.view) {
591
+ return (
592
+ <ButtonNew id="test_case_clear_all" icon="icon-execution-clear" size="aj_btn_sm" placement="bottom" heading="Clear" content="all" disabled={this.state.TestCaseStore.markup.definition || (0 !== this.state.TestCaseStore.execution)}
593
+ onClick={(e) => {
594
+ this.dispatch(TestCaseStore, new ActionTestCaseClear('execution'));
595
+ this.dispatch(TestCaseStore, new ActionTestCaseClear('log'));
596
+ this.dispatch(TestCaseStore, new ActionTestCaseClear('sequence-diagram'));
597
+ }}
598
+ />
599
+ );
600
+ }
601
+ }
602
+
603
+ renderRealtimeInfo() {
604
+ let colorMark = '';
605
+ if(0 === this.state.TestCaseStore.realtimeConnection) {
606
+ colorMark += 'red';
607
+ }
608
+ else if(1 === this.state.TestCaseStore.realtimeConnection) {
609
+ colorMark += 'green';
610
+ }
611
+ const style = {
612
+ position: 'relative',
613
+ width: '26px',
614
+ height: '28px',
615
+ top: '2px'
616
+ };
617
+ return (
618
+ <Popover placement="bottom" heading="Realtime Connection" style={style}>
619
+ <Icon name="icon-line-next-line" colorMark={colorMark} />
620
+ </Popover>
621
+ );
622
+ }
623
+
624
+ renderStageButton() {
625
+ return (
626
+ <ButtonNew id="test_case_stage" colorMark="markup_color" icon="icon-stage" size="aj_btn_sm" placement="bottom" heading="Goto" content="Stage" aria-label="Stage"
627
+ onClick={(e) => {
628
+ this.context.history(`/stage`, {global: true});
629
+ }}
630
+ />
631
+ );
632
+ }
633
+
634
+ renderModalDialogAbstractionAdd() {
635
+ if('none' === this.state.TestCasesStore.current.view) {
636
+ return (
637
+ <ModalDialogAbstractionAdd id="test_cases_sut_add" ref={(c) => {this._modalDialogAbstractionAdd = c;}} type="sut" defaultMarkup={MiddleTestCasesToolbar.DEFAULT_MARKUP_SUT} result={'success'} capitalFirst={true} repos={this.state.SystemUnderTestStore.repos} heading={`Add a new ${this.getText()}`} nameplaceholder={`The name of the ${this.getText()}`} descriptionplaceholder={`A description of the ${this.getText()}`}
638
+ onLoad={() => {
639
+ this.dispatch(SystemUnderTestStore, new ActionSystemUnderTestRepoGet());
640
+ }}
641
+ onAdd={(name, description, repo) => {
642
+ this.dispatch(SystemUnderTestStore, new ActionSystemUnderTestAdd(repo, name, description));
643
+ }}
644
+ onTemplate={(templateName) => {
645
+ }}
646
+ onClear={() => {
647
+ }}
648
+ />
649
+ );
650
+ }
651
+ else if('sut' === this.state.TestCasesStore.current.view) {
652
+ return (
653
+ <ModalDialogAbstractionAdd id="test_cases_fut_add" ref={(c) => {this._modalDialogAbstractionAdd = c;}} type="fut" defaultMarkup={MiddleTestCasesToolbar.DEFAULT_MARKUP_FUT} result={'success'} capitalFirst={true} heading={`Add a new ${this.getText()}`} nameplaceholder={`The name of the ${this.getText()}`} descriptionplaceholder={`A description of the ${this.getText()}`}
654
+ onAdd={(name, description) => {
655
+ this.dispatch(FunctionUnderTestStore, new ActionFunctionUnderTestAdd(this.repo, this.props.sut, name, description));
656
+ }}
657
+ onClear={() => {
658
+ }}
659
+ />
660
+ );
661
+ }
662
+ else if('fut' === this.state.TestCasesStore.current.view) {
663
+ return (
664
+ <ModalDialogAbstractionAdd id="test_cases_tc_add" ref={(c) => {this._modalDialogAbstractionAdd = c;}} type="tc" wizardNames={this.state.TestCaseStore.wizard.stacks} templates={this.state.TestCaseStore.wizard.stackTemplates} defaultMarkup={MiddleTestCasesToolbar.DEFAULT_MARKUP_TC} result={'success'} capitalFirst={true} heading={`Add a new ${this.getText()}`} nameplaceholder={`The name of the ${this.getText()}`} descriptionplaceholder={`A description of the ${this.getText()}`}
665
+ onAdd={(name, description, stackName, templateName, testData) => {
666
+ this.dispatch(TestCaseStore, new ActionTestCaseAdd(this.repo, this.props.sut, this.props.fut, name, description, stackName, templateName, testData));
667
+ }}
668
+ onClear={() => {
669
+ }}
670
+ />
671
+ );
672
+ }
673
+ }
674
+
675
+ renderModalDialogAbstractionProperties() {
676
+ let currentName = '';
677
+ let currentDescription = '';
678
+ const tc = this.state.TestCasesStore.testCasesChecked.forEach((tc) => {
679
+ currentName = tc.tc;
680
+ currentDescription = tc.description;
681
+ });
682
+ return (
683
+ <ModalDialogAbstractionProperties ref={(c) => this._modalDialogAbstractionProperties = c} name={currentName} description={currentDescription} heading="Test Case Properties" capitalFirst result={'result'}
684
+ onAdd={(newName, description) => {
685
+ this.dispatch(TestCaseStore, new ActionTestCaseRename(this.repo, this.props.sut, this.props.fut, currentName, newName, description));
686
+ }}
687
+ onClear={() => {
688
+ this.dispatch(TestCasesStore, new ActionTestCasesTcClear());
689
+ }}
690
+ />
691
+ );
692
+ }
693
+
694
+ render() {
695
+ const sut = !this.props.sut ? undefined : this.state.SystemUnderTestStore.systemUnderTests.find((sut) => {
696
+ return sut.name === this.props.sut;
697
+ });
698
+ this.repo = sut ? sut.repo : null;
699
+ return (
700
+ <div className="middle_toolbar">
701
+ {this.renderModalDialogAbstractionAdd()}
702
+ {this.renderModalDialogAbstractionProperties()}
703
+ <div className="toolbar" role="toolbar" aria-label="...">
704
+ <MiddleFilter sut fut disabled={'tc' === this.state.TestCasesStore.current.view}/>
705
+ <div className="aj_btn_group" role="group" aria-label="...">
706
+ {this.renderNewButton()}
707
+ {this.renderRemoveButton()}
708
+ {this.renderButtonProperties()}
709
+ {this.renderButtonCopy()}
710
+ </div>
711
+ <div className="aj_btn_group" role="group" aria-label="...">
712
+ {this.renderMarkupOpenButton()}
713
+ {this.renderMarkupSaveButton()}
714
+ {this.renderMarkupHelpButton()}
715
+ {this.renderMarkupCancelButton()}
716
+ {this.renderMarkupCopyButton()}
717
+ </div>
718
+ <div className="aj_btn_group" role="group" aria-label="...">
719
+ {this.renderStartButton('execution')}
720
+ {this.renderClearButton('execution')}
721
+ </div>
722
+ <div className="aj_btn_group" role="group" aria-label="...">
723
+ {this.renderStartButton('log')}
724
+ {this.renderClearButton('log')}
725
+ </div>
726
+ <div className="aj_btn_group" role="group" aria-label="...">
727
+ {this.renderStartButton('sequence-diagram')}
728
+ {this.renderClearButton('sequence-diagram')}
729
+ </div>
730
+ <div className="aj_btn_group" role="group" aria-label="...">
731
+ {this.renderStartButton('debug', true)}
732
+ <div className="aj_btn_group_2 aj_btn_group_xxs_2">
733
+ {this.renderPauseOnEnterRunButton()}
734
+ {this.renderPauseOnLeaveRunButton()}
735
+ </div>
736
+ <div className="aj_btn_group_2 aj_btn_group_xxs_2">
737
+ {this.renderPauseOnIpEventButton()}
738
+ {this.renderPauseOnGuiEventButton()}
739
+ </div>
740
+ <div className="aj_btn_group_2 aj_btn_group_xxs_2">
741
+ {this.renderDebugLocalButton()}
742
+ {this.renderDebugRemoteButton()}
743
+ </div>
744
+ </div>
745
+ <div className="aj_btn_group" role="group" aria-label="...">
746
+ {this.renderStartSlowMotionButton()}
747
+ <div className="aj_btn_group_2 aj_btn_group_xxs_2">
748
+ {this.renderSlowOnIpEventButton()}
749
+ {this.renderSlowOnGuiEventButton()}
750
+ </div>
751
+ {this.renderStopButton()}
752
+ {this.renderClearAllButton()}
753
+ <div className="aj_btn_group_2 aj_btn_group_xxs_2">
754
+ {this.renderAsServiceButton()}
755
+ {this.renderWithLogsButton()}
756
+ </div>
757
+ </div>
758
+ <div className="aj_btn_group pull-right" role="group" aria-label="...">
759
+ {this.renderRealtimeInfo()}
760
+ </div>
761
+ <div className="aj_btn_group pull-right" role="group" aria-label="...">
762
+ {this.renderStageButton()}
763
+ </div>
764
+ </div>
765
+ </div>
766
+ );
767
+ }
768
+
769
+ tabNavigation(tab) {
770
+ if(tab !== this.props.tab) {
771
+ this.context.history(`${this.props.sut}/${this.props.fut}/${this.props.tc}/${tab}`, {replace: true});
772
+ }
773
+ }
774
+
775
+ _getAutoBreakeLines(breakOnLines, breakOnEnterRun, breakOnLeaveRun) {
776
+ this.state.TestCaseStore.dbugger.actorFiles.forEach((actorFile) => {
777
+ if(breakOnEnterRun && -1 !== actorFile.lineRunEnter) {
778
+ breakOnLines.push({
779
+ name: actorFile.path + '/' + actorFile.title,
780
+ title: actorFile.title,
781
+ pauseOnBreak: true,
782
+ lineNumber: actorFile.lineRunEnter,
783
+ url: ''
784
+ });
785
+ }
786
+ if(breakOnLeaveRun && -1 !== actorFile.lineRunLeave) {
787
+ breakOnLines.push({
788
+ name: actorFile.path + '/' + actorFile.title,
789
+ title: actorFile.title,
790
+ pauseOnBreak: true,
791
+ lineNumber: actorFile.lineRunLeave,
792
+ url: ''
793
+ });
794
+ }
795
+ });
796
+ }
797
+
798
+ _isRunning() {
799
+ return this.state.TestCaseStore.realtimeConnection !== TestCaseStore.REALTIME_CONNECTION_OPEN || this.state.TestCaseStore.markup.definition || (0 !== this.state.TestCaseStore.execution);
800
+ }
801
+ }
802
+
803
+
804
+ MiddleTestCasesToolbar.contextType = RouterContext;