matlab-proxy 0.18.2__tar.gz → 0.20.0__tar.gz

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.

Potentially problematic release.


This version of matlab-proxy might be problematic. Click here for more details.

Files changed (176) hide show
  1. {matlab-proxy-0.18.2/matlab_proxy.egg-info → matlab-proxy-0.20.0}/PKG-INFO +2 -2
  2. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/README.md +1 -1
  3. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/package-lock.json +113 -69
  4. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/package.json +3 -1
  5. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/actionCreators/actionCreators.spec.js +2 -28
  6. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/actionCreators/index.js +11 -12
  7. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/actions/index.js +2 -2
  8. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/App.spec.js +2 -6
  9. matlab-proxy-0.20.0/gui/src/components/App/IdleBufferTimeouts.spec.js +120 -0
  10. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/index.js +113 -13
  11. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Controls/index.js +2 -2
  12. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Help/index.js +7 -6
  13. matlab-proxy-0.20.0/gui/src/components/MatlabJsd/MatlabJsd.spec.js +94 -0
  14. matlab-proxy-0.20.0/gui/src/components/MatlabJsd/index.js +55 -0
  15. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/OverlayTrigger.spec.js +1 -1
  16. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/ResizeOverlayTrigger.spec.js +1 -1
  17. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/index.js +4 -4
  18. matlab-proxy-0.20.0/gui/src/components/ShutdownWarning/ShutdownWarning.css +46 -0
  19. matlab-proxy-0.20.0/gui/src/components/ShutdownWarning/index.js +72 -0
  20. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/constants.js +4 -0
  21. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/reducers/index.js +46 -20
  22. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/reducers/reducers.spec.js +13 -10
  23. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/selectors/index.js +32 -2
  24. matlab-proxy-0.20.0/gui/src/test/utils/responses.js +39 -0
  25. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/test/utils/state.js +7 -2
  26. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/app.py +73 -55
  27. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/app_state.py +370 -155
  28. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/constants.py +3 -0
  29. matlab-proxy-0.20.0/matlab_proxy/matlab/startup.m +17 -0
  30. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/settings.py +16 -1
  31. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/__init__.py +101 -1
  32. matlab-proxy-0.20.0/matlab_proxy/util/event_loop.py +63 -0
  33. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/embedded_connector/__init__.py +1 -1
  34. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/embedded_connector/helpers.py +9 -0
  35. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/embedded_connector/request.py +51 -21
  36. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/environment_variables.py +5 -0
  37. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/exceptions.py +16 -1
  38. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/logger.py +22 -2
  39. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/validators.py +33 -0
  40. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/windows.py +4 -1
  41. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0/matlab_proxy.egg-info}/PKG-INFO +2 -2
  42. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy.egg-info/SOURCES.txt +4 -0
  43. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/setup.py +1 -1
  44. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/test_app.py +45 -22
  45. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/test_app_state.py +404 -111
  46. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/test_constants.py +1 -0
  47. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/mwi/test_logger.py +38 -4
  48. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/mwi/test_validators.py +30 -1
  49. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/test_util.py +83 -0
  50. matlab-proxy-0.18.2/gui/src/components/MatlabJsd/MatlabJsd.spec.js +0 -42
  51. matlab-proxy-0.18.2/gui/src/components/MatlabJsd/index.js +0 -23
  52. matlab-proxy-0.18.2/matlab_proxy/matlab/startup.m +0 -37
  53. matlab-proxy-0.18.2/matlab_proxy/util/event_loop.py +0 -45
  54. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/LICENSE.md +0 -0
  55. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/MANIFEST.in +0 -0
  56. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/.eslintrc.json +0 -0
  57. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/.gitignore +0 -0
  58. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/README.md +0 -0
  59. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/public/favicon.ico +0 -0
  60. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/public/index.html +0 -0
  61. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/public/manifest.json +0 -0
  62. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/public/robots.txt +0 -0
  63. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/css/bootstrap.min.css +0 -0
  64. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/css/site7.min.css +0 -0
  65. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.eot +0 -0
  66. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.svg +0 -0
  67. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.ttf +0 -0
  68. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.woff +0 -0
  69. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.woff2 +0 -0
  70. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks-eps.svg +0 -0
  71. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks-eps.ttf +0 -0
  72. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks-eps.woff +0 -0
  73. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks-pictograms.svg +0 -0
  74. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks-pictograms.ttf +0 -0
  75. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks-pictograms.woff +0 -0
  76. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks.svg +0 -0
  77. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks.ttf +0 -0
  78. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks.woff +0 -0
  79. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/images/bug_reports/workaround.gif +0 -0
  80. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/images/responsive/global/ico-header-account-hover.svg +0 -0
  81. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/images/responsive/global/ico-header-account.svg +0 -0
  82. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/images/responsive/global/ico-header-contact-hover.svg +0 -0
  83. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/images/responsive/global/ico-header-contact.svg +0 -0
  84. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/images/responsive/global/ico-sprite.png +0 -0
  85. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/App.css +0 -0
  86. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/MATLAB-env-blur.png +0 -0
  87. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Confirmation/Confirmation.spec.js +0 -0
  88. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Confirmation/index.js +0 -0
  89. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Controls/Controls.css +0 -0
  90. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Controls/Controls.spec.js +0 -0
  91. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Controls/feedback.svg +0 -0
  92. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Controls/help.svg +0 -0
  93. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Controls/restart.svg +0 -0
  94. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Controls/sign-out.svg +0 -0
  95. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Controls/start.svg +0 -0
  96. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Controls/stop.svg +0 -0
  97. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Controls/terminate.svg +0 -0
  98. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/EntitlementSelector/EntitlementSelector.spec.js +0 -0
  99. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/EntitlementSelector/index.js +0 -0
  100. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Error/Error.css +0 -0
  101. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Error/Error.spec.js +0 -0
  102. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Error/index.js +0 -0
  103. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Help/Help.css +0 -0
  104. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Help/Help.spec.js +0 -0
  105. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Information/Information.css +0 -0
  106. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Information/Information.spec.js +0 -0
  107. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Information/index.js +0 -0
  108. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/LicensingGatherer/ExistingLicense.css +0 -0
  109. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/LicensingGatherer/ExistingLicense.js +0 -0
  110. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/LicensingGatherer/LicenseGatherer.spec.js +0 -0
  111. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/LicensingGatherer/LicensingGatherer.css +0 -0
  112. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/LicensingGatherer/MHLM.js +0 -0
  113. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/LicensingGatherer/NLM.js +0 -0
  114. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/LicensingGatherer/index.js +0 -0
  115. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/MatlabJsd/MatlabJsd.css +0 -0
  116. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Overlay/Overlay.css +0 -0
  117. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Overlay/Overlay.spec.js +0 -0
  118. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Overlay/index.js +0 -0
  119. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/OverlayTrigger.css +0 -0
  120. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/arrow.svg +0 -0
  121. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/gripper.svg +0 -0
  122. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/trigger-error.svg +0 -0
  123. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/trigger-ok.svg +0 -0
  124. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/index.css +0 -0
  125. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/index.js +0 -0
  126. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/jest.config.json +0 -0
  127. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/logo.svg +0 -0
  128. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/selectors/selectors.spec.js +0 -0
  129. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/serviceWorker.js +0 -0
  130. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/setupTests.js +0 -0
  131. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/test/utils/react-test.js +0 -0
  132. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/__init__.py +0 -0
  133. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/default_configuration.py +0 -0
  134. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/devel.py +0 -0
  135. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/icons/matlab.svg +0 -0
  136. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/matlab/evaluateUserMatlabCode.m +0 -0
  137. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/list_servers.py +0 -0
  138. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mw.py +0 -0
  139. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/__init__.py +0 -0
  140. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/custom_http_headers.py +0 -0
  141. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/download.py +0 -0
  142. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/token_auth.py +0 -0
  143. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/system.py +0 -0
  144. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy.egg-info/dependency_links.txt +0 -0
  145. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy.egg-info/entry_points.txt +0 -0
  146. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy.egg-info/not-zip-safe +0 -0
  147. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy.egg-info/requires.txt +0 -0
  148. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy.egg-info/top_level.txt +0 -0
  149. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/setup.cfg +0 -0
  150. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/integration/__init__.py +0 -0
  151. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/integration/integration_tests_with_license/__init__.py +0 -0
  152. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/integration/integration_tests_with_license/conftest.py +0 -0
  153. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/integration/integration_tests_with_license/test_http_end_points.py +0 -0
  154. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/integration/integration_tests_without_license/__init__.py +0 -0
  155. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/integration/integration_tests_without_license/conftest.py +0 -0
  156. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/integration/integration_tests_without_license/test_matlab_is_down_if_unlicensed.py +0 -0
  157. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/integration/utils/__init__.py +0 -0
  158. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/integration/utils/integration_tests_utils.py +0 -0
  159. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/integration/utils/licensing.py +0 -0
  160. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/__init__.py +0 -0
  161. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/conftest.py +0 -0
  162. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/test_ddux.py +0 -0
  163. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/test_devel.py +0 -0
  164. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/test_non_dev_mode.py +0 -0
  165. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/test_settings.py +0 -0
  166. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/__init__.py +0 -0
  167. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/mwi/__init__.py +0 -0
  168. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/mwi/embedded_connector/__init__.py +0 -0
  169. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/mwi/embedded_connector/test_helpers.py +0 -0
  170. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/mwi/embedded_connector/test_request.py +0 -0
  171. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/mwi/test_custom_http_headers.py +0 -0
  172. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/mwi/test_download.py +0 -0
  173. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/mwi/test_token_auth.py +0 -0
  174. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/test_mw.py +0 -0
  175. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/utils/__init__.py +0 -0
  176. {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/utils/logging_util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: matlab-proxy
3
- Version: 0.18.2
3
+ Version: 0.20.0
4
4
  Summary: Python® package enables you to launch MATLAB® and access it from a web browser.
5
5
  Home-page: https://github.com/mathworks/matlab-proxy/
6
6
  Author: The MathWorks, Inc.
@@ -171,7 +171,7 @@ Description: # MATLAB Proxy
171
171
 
172
172
  ### Windows Subsystem for Linux (WSL 2)
173
173
 
174
- To install `matlab-proxy` in WSL 2, follow the steps mentioned in the [Installation Guide for WSL 2](./installation/wsl2/README.md).
174
+ To install `matlab-proxy` in WSL 2, follow the steps mentioned in the [Installation Guide for WSL 2](./install_guides/wsl2/README.md).
175
175
 
176
176
  ## Using an already activated MATLAB with matlab-proxy
177
177
  `matlab-proxy` version `v0.7.0` introduces support for using an existing MATLAB license. Use the Existing License option only if you have an activated MATLAB. This allows you to start MATLAB without authenticating every time.
@@ -163,7 +163,7 @@ $ pip install --upgrade matlab-proxy>=0.5.0
163
163
 
164
164
  ### Windows Subsystem for Linux (WSL 2)
165
165
 
166
- To install `matlab-proxy` in WSL 2, follow the steps mentioned in the [Installation Guide for WSL 2](./installation/wsl2/README.md).
166
+ To install `matlab-proxy` in WSL 2, follow the steps mentioned in the [Installation Guide for WSL 2](./install_guides/wsl2/README.md).
167
167
 
168
168
  ## Using an already activated MATLAB with matlab-proxy
169
169
  `matlab-proxy` version `v0.7.0` introduces support for using an existing MATLAB license. Use the Existing License option only if you have an activated MATLAB. This allows you to start MATLAB without authenticating every time.
@@ -11,6 +11,7 @@
11
11
  "clsx": "^1.1.1",
12
12
  "cross-fetch": "^3.0.6",
13
13
  "crypto-js": "4.2.0",
14
+ "postcss": "^8.4.38",
14
15
  "react": "^16.13.1",
15
16
  "react-dom": "^16.13.1",
16
17
  "react-draggable": "^4.4.3",
@@ -21,7 +22,8 @@
21
22
  "react-use": "^15.3.4",
22
23
  "redux": "^4.0.5",
23
24
  "redux-thunk": "^2.3.0",
24
- "reselect": "^4.0.0"
25
+ "reselect": "^4.0.0",
26
+ "resolve-url-loader": "^5.0.0"
25
27
  },
26
28
  "devDependencies": {
27
29
  "@babel/preset-env": "^7.11.0",
@@ -15671,6 +15673,54 @@
15671
15673
  "node": ">=10"
15672
15674
  }
15673
15675
  },
15676
+ "node_modules/react-scripts/node_modules/picocolors": {
15677
+ "version": "0.2.1",
15678
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
15679
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA=="
15680
+ },
15681
+ "node_modules/react-scripts/node_modules/resolve-url-loader": {
15682
+ "version": "4.0.0",
15683
+ "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz",
15684
+ "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==",
15685
+ "dependencies": {
15686
+ "adjust-sourcemap-loader": "^4.0.0",
15687
+ "convert-source-map": "^1.7.0",
15688
+ "loader-utils": "^2.0.0",
15689
+ "postcss": "^7.0.35",
15690
+ "source-map": "0.6.1"
15691
+ },
15692
+ "engines": {
15693
+ "node": ">=8.9"
15694
+ },
15695
+ "peerDependencies": {
15696
+ "rework": "1.0.1",
15697
+ "rework-visit": "1.0.0"
15698
+ },
15699
+ "peerDependenciesMeta": {
15700
+ "rework": {
15701
+ "optional": true
15702
+ },
15703
+ "rework-visit": {
15704
+ "optional": true
15705
+ }
15706
+ }
15707
+ },
15708
+ "node_modules/react-scripts/node_modules/resolve-url-loader/node_modules/postcss": {
15709
+ "version": "7.0.39",
15710
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
15711
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
15712
+ "dependencies": {
15713
+ "picocolors": "^0.2.1",
15714
+ "source-map": "^0.6.1"
15715
+ },
15716
+ "engines": {
15717
+ "node": ">=6.0.0"
15718
+ },
15719
+ "funding": {
15720
+ "type": "opencollective",
15721
+ "url": "https://opencollective.com/postcss/"
15722
+ }
15723
+ },
15674
15724
  "node_modules/react-scripts/node_modules/semver": {
15675
15725
  "version": "7.5.2",
15676
15726
  "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz",
@@ -15685,6 +15735,14 @@
15685
15735
  "node": ">=10"
15686
15736
  }
15687
15737
  },
15738
+ "node_modules/react-scripts/node_modules/source-map": {
15739
+ "version": "0.6.1",
15740
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
15741
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
15742
+ "engines": {
15743
+ "node": ">=0.10.0"
15744
+ }
15745
+ },
15688
15746
  "node_modules/react-scripts/node_modules/yallist": {
15689
15747
  "version": "4.0.0",
15690
15748
  "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
@@ -16046,51 +16104,18 @@
16046
16104
  "dev": true
16047
16105
  },
16048
16106
  "node_modules/resolve-url-loader": {
16049
- "version": "4.0.0",
16050
- "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz",
16051
- "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==",
16107
+ "version": "5.0.0",
16108
+ "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz",
16109
+ "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==",
16052
16110
  "dependencies": {
16053
16111
  "adjust-sourcemap-loader": "^4.0.0",
16054
16112
  "convert-source-map": "^1.7.0",
16055
16113
  "loader-utils": "^2.0.0",
16056
- "postcss": "^7.0.35",
16114
+ "postcss": "^8.2.14",
16057
16115
  "source-map": "0.6.1"
16058
16116
  },
16059
16117
  "engines": {
16060
- "node": ">=8.9"
16061
- },
16062
- "peerDependencies": {
16063
- "rework": "1.0.1",
16064
- "rework-visit": "1.0.0"
16065
- },
16066
- "peerDependenciesMeta": {
16067
- "rework": {
16068
- "optional": true
16069
- },
16070
- "rework-visit": {
16071
- "optional": true
16072
- }
16073
- }
16074
- },
16075
- "node_modules/resolve-url-loader/node_modules/picocolors": {
16076
- "version": "0.2.1",
16077
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
16078
- "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA=="
16079
- },
16080
- "node_modules/resolve-url-loader/node_modules/postcss": {
16081
- "version": "7.0.39",
16082
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
16083
- "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
16084
- "dependencies": {
16085
- "picocolors": "^0.2.1",
16086
- "source-map": "^0.6.1"
16087
- },
16088
- "engines": {
16089
- "node": ">=6.0.0"
16090
- },
16091
- "funding": {
16092
- "type": "opencollective",
16093
- "url": "https://opencollective.com/postcss/"
16118
+ "node": ">=12"
16094
16119
  }
16095
16120
  },
16096
16121
  "node_modules/resolve-url-loader/node_modules/source-map": {
@@ -18235,9 +18260,9 @@
18235
18260
  }
18236
18261
  },
18237
18262
  "node_modules/webpack-dev-server/node_modules/ws": {
18238
- "version": "8.13.0",
18239
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
18240
- "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
18263
+ "version": "8.17.1",
18264
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
18265
+ "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
18241
18266
  "engines": {
18242
18267
  "node": ">=10.0.0"
18243
18268
  },
@@ -18804,9 +18829,9 @@
18804
18829
  }
18805
18830
  },
18806
18831
  "node_modules/ws": {
18807
- "version": "7.5.9",
18808
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
18809
- "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
18832
+ "version": "7.5.10",
18833
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
18834
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
18810
18835
  "engines": {
18811
18836
  "node": ">=8.3.0"
18812
18837
  },
@@ -29916,6 +29941,34 @@
29916
29941
  "yallist": "^4.0.0"
29917
29942
  }
29918
29943
  },
29944
+ "picocolors": {
29945
+ "version": "0.2.1",
29946
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
29947
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA=="
29948
+ },
29949
+ "resolve-url-loader": {
29950
+ "version": "4.0.0",
29951
+ "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz",
29952
+ "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==",
29953
+ "requires": {
29954
+ "adjust-sourcemap-loader": "^4.0.0",
29955
+ "convert-source-map": "^1.7.0",
29956
+ "loader-utils": "^2.0.0",
29957
+ "postcss": "^7.0.35",
29958
+ "source-map": "0.6.1"
29959
+ },
29960
+ "dependencies": {
29961
+ "postcss": {
29962
+ "version": "7.0.39",
29963
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
29964
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
29965
+ "requires": {
29966
+ "picocolors": "^0.2.1",
29967
+ "source-map": "^0.6.1"
29968
+ }
29969
+ }
29970
+ }
29971
+ },
29919
29972
  "semver": {
29920
29973
  "version": "7.5.2",
29921
29974
  "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz",
@@ -29924,6 +29977,11 @@
29924
29977
  "lru-cache": "^6.0.0"
29925
29978
  }
29926
29979
  },
29980
+ "source-map": {
29981
+ "version": "0.6.1",
29982
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
29983
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
29984
+ },
29927
29985
  "yallist": {
29928
29986
  "version": "4.0.0",
29929
29987
  "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
@@ -30213,31 +30271,17 @@
30213
30271
  "dev": true
30214
30272
  },
30215
30273
  "resolve-url-loader": {
30216
- "version": "4.0.0",
30217
- "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz",
30218
- "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==",
30274
+ "version": "5.0.0",
30275
+ "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz",
30276
+ "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==",
30219
30277
  "requires": {
30220
30278
  "adjust-sourcemap-loader": "^4.0.0",
30221
30279
  "convert-source-map": "^1.7.0",
30222
30280
  "loader-utils": "^2.0.0",
30223
- "postcss": "^7.0.35",
30281
+ "postcss": "^8.2.14",
30224
30282
  "source-map": "0.6.1"
30225
30283
  },
30226
30284
  "dependencies": {
30227
- "picocolors": {
30228
- "version": "0.2.1",
30229
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
30230
- "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA=="
30231
- },
30232
- "postcss": {
30233
- "version": "7.0.39",
30234
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
30235
- "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
30236
- "requires": {
30237
- "picocolors": "^0.2.1",
30238
- "source-map": "^0.6.1"
30239
- }
30240
- },
30241
30285
  "source-map": {
30242
30286
  "version": "0.6.1",
30243
30287
  "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -31817,9 +31861,9 @@
31817
31861
  }
31818
31862
  },
31819
31863
  "ws": {
31820
- "version": "8.13.0",
31821
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
31822
- "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
31864
+ "version": "8.17.1",
31865
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
31866
+ "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
31823
31867
  "requires": {}
31824
31868
  }
31825
31869
  }
@@ -32277,9 +32321,9 @@
32277
32321
  }
32278
32322
  },
32279
32323
  "ws": {
32280
- "version": "7.5.9",
32281
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
32282
- "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
32324
+ "version": "7.5.10",
32325
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
32326
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
32283
32327
  "requires": {}
32284
32328
  },
32285
32329
  "xdg-basedir": {
@@ -6,6 +6,7 @@
6
6
  "clsx": "^1.1.1",
7
7
  "cross-fetch": "^3.0.6",
8
8
  "crypto-js": "4.2.0",
9
+ "postcss": "^8.4.38",
9
10
  "react": "^16.13.1",
10
11
  "react-dom": "^16.13.1",
11
12
  "react-draggable": "^4.4.3",
@@ -16,7 +17,8 @@
16
17
  "react-use": "^15.3.4",
17
18
  "redux": "^4.0.5",
18
19
  "redux-thunk": "^2.3.0",
19
- "reselect": "^4.0.0"
20
+ "reselect": "^4.0.0",
21
+ "resolve-url-loader": "^5.0.0"
20
22
  },
21
23
  "scripts": {
22
24
  "start": "react-scripts start",
@@ -36,7 +36,7 @@ describe.each([
36
36
  [actionCreators.requestSetLicensing, { type: actions.REQUEST_SET_LICENSING }],
37
37
  [actionCreators.requestStopMatlab, { type: actions.REQUEST_STOP_MATLAB, status: 'stopping' }],
38
38
  [actionCreators.requestStartMatlab, { type: actions.REQUEST_START_MATLAB, status: 'starting' }],
39
- [actionCreators.requestTerminateIntegration, { type: actions.REQUEST_TERMINATE_INTEGRATION }]
39
+ [actionCreators.requestShutdownIntegration, { type: actions.REQUEST_SHUTDOWN_INTEGRATION }]
40
40
  ])('Test Request actionCreators', (method, expectedAction) => {
41
41
  test(`check if an action of type ${expectedAction.type} is returned when method actionCreator.${method.name}() is called`, () => {
42
42
  expect(method()).toEqual(expectedAction);
@@ -48,7 +48,7 @@ describe.each([
48
48
  [actionCreators.receiveStopMatlab, { matlabStatus: 'down' }, { type: actions.RECEIVE_STOP_MATLAB, status: { matlabStatus: 'down' } }],
49
49
  [actionCreators.receiveStartMatlab, { matlabStatus: 'up' }, { type: actions.RECEIVE_START_MATLAB, status: { matlabStatus: 'up' } }],
50
50
  [actionCreators.receiveError, { message: 'ERROR: License Manager Error -9', logs: null }, { type: actions.RECEIVE_ERROR, error: { message: 'ERROR: License Manager Error -9', logs: null } }],
51
- [actionCreators.receiveTerminateIntegration, { licensing: {} }, { type: actions.RECEIVE_TERMINATE_INTEGRATION, status: { licensing: {} }, loadUrl: '../' }]
51
+ [actionCreators.requestShutdownIntegration, {}, { type: actions.REQUEST_SHUTDOWN_INTEGRATION }]
52
52
  ])('Test Receive actionCreators', (method, input, expectedAction) => {
53
53
  test(`check if an action of type ${expectedAction.type} is returned when method actionCreator.${method.name}() is called`, () => {
54
54
  expect(method(input)).toEqual(expectedAction);
@@ -429,32 +429,6 @@ describe('Test Async actionCreators', () => {
429
429
  });
430
430
  });
431
431
 
432
- it('should dispatch REQUEST_TERMINATE_INTEGRATION and RECEIVE_TERMINATE_INTEGRATION when we terminate the integration', () => {
433
- fetchMock.deleteOnce('./terminate_integration', {
434
- body: {
435
- matlab: {
436
- status: 'down'
437
- },
438
- licensing: null
439
- },
440
- headers: { 'content-type': 'application/json' }
441
- });
442
-
443
- const expectedActionTypes = [
444
- actions.REQUEST_TERMINATE_INTEGRATION,
445
- actions.RECEIVE_TERMINATE_INTEGRATION
446
- ];
447
-
448
- return store
449
- .dispatch(actionCreators.fetchTerminateIntegration())
450
- .then(() => {
451
- const receivedActions = store.getActions();
452
- expect(receivedActions.map((action) => action.type)).toEqual(
453
- expectedActionTypes
454
- );
455
- });
456
- });
457
-
458
432
  it('should dispatch REQUEST_STOP_MATLAB AND RECEIVE_STOP_MATLAB when we stop matlab', () => {
459
433
  fetchMock.putOnce('./start_matlab', {
460
434
  body: {
@@ -8,13 +8,13 @@ import {
8
8
  RECEIVE_SERVER_STATUS,
9
9
  REQUEST_SET_LICENSING,
10
10
  REQUEST_UPDATE_LICENSING,
11
- REQUEST_TERMINATE_INTEGRATION,
11
+ REQUEST_SHUTDOWN_INTEGRATION,
12
12
  REQUEST_STOP_MATLAB,
13
13
  REQUEST_START_MATLAB,
14
14
  REQUEST_ENV_CONFIG,
15
15
  RECEIVE_SET_LICENSING,
16
16
  RECEIVE_UPDATE_LICENSING,
17
- RECEIVE_TERMINATE_INTEGRATION,
17
+ RECEIVE_SHUTDOWN_INTEGRATION,
18
18
  RECEIVE_STOP_MATLAB,
19
19
  RECEIVE_START_MATLAB,
20
20
  RECEIVE_ERROR,
@@ -162,15 +162,15 @@ export function receiveUpdateLicensing (status) {
162
162
  };
163
163
  }
164
164
 
165
- export function requestTerminateIntegration () {
165
+ export function requestShutdownIntegration () {
166
166
  return {
167
- type: REQUEST_TERMINATE_INTEGRATION
167
+ type: REQUEST_SHUTDOWN_INTEGRATION
168
168
  };
169
169
  }
170
170
 
171
- export function receiveTerminateIntegration (status) {
171
+ export function receiveShutdownIntegration (status) {
172
172
  return {
173
- type: RECEIVE_TERMINATE_INTEGRATION,
173
+ type: RECEIVE_SHUTDOWN_INTEGRATION,
174
174
  status,
175
175
  loadUrl: '../'
176
176
  };
@@ -244,7 +244,7 @@ export function fetchServerStatus (requestTransferSession = false) {
244
244
  const isAuthEnabled = selectAuthEnabled(getState());
245
245
  const isAuthenticated = selectIsAuthenticated(getState());
246
246
  const clientIdInState = selectClientId(getState());
247
- const clientId = clientIdInState || sessionStorage.getItem('MWI_CLIENT_ID');
247
+ const clientId = clientIdInState;
248
248
 
249
249
  dispatch(requestServerStatus());
250
250
  let url = './get_status';
@@ -269,7 +269,6 @@ export function fetchServerStatus (requestTransferSession = false) {
269
269
  dispatch(receiveServerStatus(data));
270
270
 
271
271
  if (clientId == null && data.clientId) {
272
- sessionStorage.setItem('MWI_CLIENT_ID', data.clientId);
273
272
  dispatch(setClientId(data.clientId));
274
273
  }
275
274
  if ('isActiveClient' in data) {
@@ -375,7 +374,7 @@ export function fetchUnsetLicensing () {
375
374
  };
376
375
  }
377
376
 
378
- export function fetchTerminateIntegration () {
377
+ export function fetchShutdownIntegration () {
379
378
  return async function (dispatch, getState) {
380
379
  const options = {
381
380
  method: 'DELETE',
@@ -384,10 +383,10 @@ export function fetchTerminateIntegration () {
384
383
  credentials: 'same-origin'
385
384
  };
386
385
 
387
- dispatch(requestTerminateIntegration());
388
- const response = await fetchWithTimeout(dispatch, './terminate_integration', options, 15000);
386
+ dispatch(requestShutdownIntegration());
387
+ const response = await fetchWithTimeout(dispatch, './shutdown_integration', options, 15000);
389
388
  const data = await response.json();
390
- dispatch(receiveTerminateIntegration(data));
389
+ dispatch(receiveShutdownIntegration(data));
391
390
  };
392
391
  }
393
392
 
@@ -8,12 +8,12 @@ export const REQUEST_SERVER_STATUS = 'REQUEST_SERVER_STATUS';
8
8
  export const RECEIVE_SERVER_STATUS = 'RECEIVE_SERVER_STATUS';
9
9
  export const REQUEST_SET_LICENSING = 'REQUEST_SET_LICENSING';
10
10
  export const REQUEST_UPDATE_LICENSING = 'REQUEST_UPDATE_LICENSING';
11
- export const REQUEST_TERMINATE_INTEGRATION = 'REQUEST_TERMINATE_INTEGRATION';
11
+ export const REQUEST_SHUTDOWN_INTEGRATION = 'REQUEST_SHUTDOWN_INTEGRATION';
12
12
  export const REQUEST_STOP_MATLAB = 'REQUEST_STOP_MATLAB';
13
13
  export const REQUEST_START_MATLAB = 'REQUEST_START_MATLAB';
14
14
  export const RECEIVE_SET_LICENSING = 'RECEIVE_SET_LICENSING';
15
15
  export const RECEIVE_UPDATE_LICENSING = 'RECEIVE_UPDATE_LICENSING';
16
- export const RECEIVE_TERMINATE_INTEGRATION = 'RECEIVE_TERMINATE_INTEGRATION';
16
+ export const RECEIVE_SHUTDOWN_INTEGRATION = 'RECEIVE_SHUTDOWN_INTEGRATION';
17
17
  export const RECEIVE_STOP_MATLAB = 'RECEIVE_STOP_MATLAB';
18
18
  export const RECEIVE_START_MATLAB = 'RECEIVE_START_MATLAB';
19
19
  export const RECEIVE_ERROR = 'RECEIVE_ERROR';
@@ -143,13 +143,9 @@ describe('App Component', () => {
143
143
  initialState
144
144
  });
145
145
 
146
- const paragraphElements = [...container.getElementsByTagName('pre')];
146
+ const paragraphElement = [...container.getElementsByTagName('pre')][0];
147
147
 
148
- expect(
149
- paragraphElements.some((p) =>
150
- p.textContent.includes('integration terminated')
151
- )
152
- ).toBe(true);
148
+ expect(paragraphElement.textContent.includes('terminated or the session ended')).toBe(true);
153
149
  });
154
150
 
155
151
  it('should display MatlabInstallError', () => {
@@ -0,0 +1,120 @@
1
+ // Copyright 2024 The MathWorks, Inc.
2
+
3
+ // File to test IDLE and BUFFER timeouts.
4
+ // Need a seperate file for mocking BUFFER_TIMEOUT_DURATION before App component is imported for testing.
5
+
6
+ import React from 'react';
7
+
8
+ import fetchMock from 'fetch-mock';
9
+ import state from '../../test/utils/state';
10
+ import { createStatusResponse } from '../../test/utils/responses';
11
+ import { render } from '../../test/utils/react-test';
12
+ import { waitFor } from '@testing-library/react';
13
+ import * as responses from '../../test/utils/responses';
14
+ import {screen} from '@testing-library/dom';
15
+
16
+ import App from './index';
17
+ //
18
+ // Mock BUFFER_TIMEOUT_DURATION before import App.
19
+ jest.mock('../../constants', () => ({
20
+ BUFFER_TIMEOUT_DURATION: 1
21
+ }));
22
+
23
+ const _ = require('lodash');
24
+
25
+ describe('Timeouts in App Component', () => {
26
+ let initialState;
27
+ beforeEach(() => {
28
+ initialState = _.cloneDeep(state);
29
+
30
+ // As the tests are run in a NodeJS environment whereas the correct values for document.URL and window.location.href
31
+ // are set by the browser, for tests, set the appropriate values for document.URL, window.location.href and window.location.origin
32
+ // for the component to render without errors
33
+ // Delete and redefine 'origin' and 'href' properties as they are read-only.
34
+ delete window.location;
35
+ window.location = {
36
+ origin: '/',
37
+ href: 'http://127.0.0.1/'
38
+ };
39
+
40
+ initialState.serverStatus.licensingInfo.entitlements = [{ id: '1234567', label: null, license_number: '7654321' }];
41
+ initialState.serverStatus.licensingInfo.entitlementId = '1234567';
42
+
43
+ const mockIntersectionObserver = jest.fn();
44
+ mockIntersectionObserver.mockReturnValue({
45
+ observe: () => null,
46
+ disconnect: () => null
47
+ });
48
+
49
+ window.IntersectionObserver = mockIntersectionObserver;
50
+ });
51
+
52
+ afterEach(() => {
53
+ jest.clearAllMocks();
54
+ fetchMock.restore();
55
+ });
56
+
57
+ it('should dispatch fetchShutdownIntegration when both IDLE and BUFFER timer expires', async () => {
58
+ // Hide the tutorial and make the overlay visible
59
+ initialState.tutorialHidden = true;
60
+ initialState.overlayVisibility = true;
61
+ initialState.idleTimeoutDuration = 1;
62
+ const mockBufferTimeoutDuration = 1;
63
+ // Takes a tiny amount of time(10ms) apart from idleTimeoutDuration + bufferTimeoutDuration
64
+ // for fetchMock to be called for the second time. Only specific to this test. Using 1000ms for test to pass in CI systems.
65
+ const additionalTimeForFetchMock = 1;
66
+
67
+ // Mock initial fetchServerStatus response
68
+ fetchMock.getOnce('/get_status', {
69
+ body: createStatusResponse,
70
+ headers: { 'content-type': 'application/json' }
71
+ });
72
+
73
+ // Mock fetchShutdownIntegration response
74
+ fetchMock.deleteOnce('/shutdown_integration', {
75
+ body: createStatusResponse,
76
+ headers: { 'content-type': 'application/json' }
77
+ });
78
+
79
+ render(<App />, {
80
+ initialState
81
+ });
82
+
83
+ await waitFor(() => {
84
+ expect(fetchMock.called('get_status')).toBe(true);
85
+ expect(fetchMock.called('shutdown_integration')).toBe(true);
86
+ }, { timeout: initialState.idleTimeoutDuration * 1000 + mockBufferTimeoutDuration * 1000 + additionalTimeForFetchMock * 1000 });
87
+ });
88
+
89
+ it('should show TerminationWarning dialog box when IDLE timer expires', async () => {
90
+ // Hide the tutorial and make the overlay visible
91
+ initialState.tutorialHidden = true;
92
+ initialState.overlayVisibility = true;
93
+ initialState.idleTimeoutDuration = 1;
94
+
95
+ // Mock initial fetchServerStatus response
96
+ fetchMock.getOnce('/get_status', {
97
+ status: 200,
98
+ body: responses.createStatusResponse,
99
+ headers: { 'Content-Type': 'application/json' }
100
+
101
+ });
102
+
103
+ const consoleSpy = jest.spyOn(console, 'log').mockImplementation();
104
+
105
+ const { getByTestId } = render(<App />, {
106
+ initialState
107
+ });
108
+
109
+ await waitFor(() => {
110
+ const shutdownWarningDialogBox = getByTestId('ShutdownWarning');
111
+ expect(shutdownWarningDialogBox).toBeInTheDocument();
112
+ const hasLog = consoleSpy.mock.calls.some(call => {
113
+ return call[0].includes('The IDLE timer has expired due to inactivity. Will display Shutdown Warning to the user.');
114
+ });
115
+ expect(hasLog).toBe(true);
116
+ }, { timeout: initialState.idleTimeoutDuration * 1000 });
117
+
118
+ consoleSpy.mockRestore();
119
+ });
120
+ });