react-spatial 1.2.2 → 1.2.3-beta.3

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 (186) hide show
  1. package/LayerService.js +128 -184
  2. package/LayerService.js.map +7 -1
  3. package/components/BaseLayerSwitcher/BaseLayerSwitcher.js +163 -221
  4. package/components/BaseLayerSwitcher/BaseLayerSwitcher.js.map +7 -1
  5. package/components/BaseLayerSwitcher/index.js +1 -3
  6. package/components/BaseLayerSwitcher/index.js.map +7 -1
  7. package/components/BasicMap/BasicMap.js +147 -285
  8. package/components/BasicMap/BasicMap.js.map +7 -1
  9. package/components/BasicMap/index.js +1 -3
  10. package/components/BasicMap/index.js.map +7 -1
  11. package/components/CanvasSaveButton/CanvasSaveButton.js +165 -419
  12. package/components/CanvasSaveButton/CanvasSaveButton.js.map +7 -1
  13. package/components/CanvasSaveButton/index.js +1 -3
  14. package/components/CanvasSaveButton/index.js.map +7 -1
  15. package/components/Copyright/Copyright.js +29 -70
  16. package/components/Copyright/Copyright.js.map +7 -1
  17. package/components/Copyright/index.js +1 -3
  18. package/components/Copyright/index.js.map +7 -1
  19. package/components/FeatureExportButton/FeatureExportButton.js +40 -106
  20. package/components/FeatureExportButton/FeatureExportButton.js.map +7 -1
  21. package/components/FeatureExportButton/index.js +1 -3
  22. package/components/FeatureExportButton/index.js.map +7 -1
  23. package/components/FilterButton/FilterButton.js +41 -106
  24. package/components/FilterButton/FilterButton.js.map +7 -1
  25. package/components/FilterButton/index.js +1 -3
  26. package/components/FilterButton/index.js.map +7 -1
  27. package/components/FitExtent/FitExtent.js +17 -50
  28. package/components/FitExtent/FitExtent.js.map +7 -1
  29. package/components/FitExtent/index.js +1 -3
  30. package/components/FitExtent/index.js.map +7 -1
  31. package/components/FollowButton/FollowButton.js +41 -111
  32. package/components/FollowButton/FollowButton.js.map +7 -1
  33. package/components/FollowButton/index.js +1 -3
  34. package/components/FollowButton/index.js.map +7 -1
  35. package/components/Geolocation/Geolocation.js +104 -213
  36. package/components/Geolocation/Geolocation.js.map +7 -1
  37. package/components/Geolocation/index.js +1 -3
  38. package/components/Geolocation/index.js.map +7 -1
  39. package/components/LayerTree/LayerTree.js +204 -410
  40. package/components/LayerTree/LayerTree.js.map +7 -1
  41. package/components/LayerTree/index.js +1 -3
  42. package/components/LayerTree/index.js.map +7 -1
  43. package/components/MousePosition/MousePosition.js +61 -130
  44. package/components/MousePosition/MousePosition.js.map +7 -1
  45. package/components/MousePosition/index.js +1 -3
  46. package/components/MousePosition/index.js.map +7 -1
  47. package/components/NorthArrow/NorthArrow.js +22 -62
  48. package/components/NorthArrow/NorthArrow.js.map +7 -1
  49. package/components/NorthArrow/index.js +1 -3
  50. package/components/NorthArrow/index.js.map +7 -1
  51. package/components/Overlay/Overlay.js +83 -130
  52. package/components/Overlay/Overlay.js.map +7 -1
  53. package/components/Overlay/index.js +1 -3
  54. package/components/Overlay/index.js.map +7 -1
  55. package/components/Permalink/Permalink.js +150 -244
  56. package/components/Permalink/Permalink.js.map +7 -1
  57. package/components/Permalink/index.js +1 -3
  58. package/components/Permalink/index.js.map +7 -1
  59. package/components/Popup/Popup.js +106 -233
  60. package/components/Popup/Popup.js.map +7 -1
  61. package/components/Popup/index.js +1 -3
  62. package/components/Popup/index.js.map +7 -1
  63. package/components/ResizeHandler/ResizeHandler.js +58 -113
  64. package/components/ResizeHandler/ResizeHandler.js.map +7 -1
  65. package/components/ResizeHandler/index.js +1 -3
  66. package/components/ResizeHandler/index.js.map +7 -1
  67. package/components/RouteSchedule/RouteSchedule.js +150 -283
  68. package/components/RouteSchedule/RouteSchedule.js.map +7 -1
  69. package/components/RouteSchedule/index.js +1 -3
  70. package/components/RouteSchedule/index.js.map +7 -1
  71. package/components/ScaleLine/ScaleLine.js +21 -45
  72. package/components/ScaleLine/ScaleLine.js.map +7 -1
  73. package/components/ScaleLine/index.js +1 -3
  74. package/components/ScaleLine/index.js.map +7 -1
  75. package/components/Search/Search.js +122 -186
  76. package/components/Search/Search.js.map +7 -1
  77. package/components/Search/SearchService.js +45 -69
  78. package/components/Search/SearchService.js.map +7 -1
  79. package/components/Search/engines/Engine.js +18 -25
  80. package/components/Search/engines/Engine.js.map +7 -1
  81. package/components/Search/engines/StopFinder.js +21 -38
  82. package/components/Search/engines/StopFinder.js.map +7 -1
  83. package/components/Search/index.js +3 -6
  84. package/components/Search/index.js.map +7 -1
  85. package/components/StopsFinder/StopsFinder.js +123 -174
  86. package/components/StopsFinder/StopsFinder.js.map +7 -1
  87. package/components/StopsFinder/StopsFinderOption.js +37 -54
  88. package/components/StopsFinder/StopsFinderOption.js.map +7 -1
  89. package/components/StopsFinder/index.js +1 -3
  90. package/components/StopsFinder/index.js.map +7 -1
  91. package/components/TrackerControl/TrackerControl.js +73 -128
  92. package/components/TrackerControl/TrackerControl.js.map +7 -1
  93. package/components/TrackerControl/index.js +1 -3
  94. package/components/TrackerControl/index.js.map +7 -1
  95. package/components/Zoom/Zoom.js +69 -112
  96. package/components/Zoom/Zoom.js.map +7 -1
  97. package/components/Zoom/index.js +1 -3
  98. package/components/Zoom/index.js.map +7 -1
  99. package/package.json +10 -5
  100. package/propTypes.js +17 -23
  101. package/propTypes.js.map +7 -1
  102. package/setupTests.js +2 -4
  103. package/setupTests.js.map +7 -1
  104. package/themes/README.md +26 -0
  105. package/themes/default/components.scss +0 -1
  106. package/themes/default/examples.scss +0 -1
  107. package/utils/GlobalsForOle.js +63 -64
  108. package/utils/GlobalsForOle.js.map +7 -1
  109. package/utils/KML.js +178 -364
  110. package/utils/KML.js.map +7 -1
  111. package/utils/KMLFormat.js +37 -73
  112. package/utils/KMLFormat.js.map +7 -1
  113. package/utils/Styles.js +24 -32
  114. package/utils/Styles.js.map +7 -1
  115. package/utils/getPolygonPattern.js +11 -44
  116. package/utils/getPolygonPattern.js.map +7 -1
  117. package/utils/timeUtils.js +16 -35
  118. package/utils/timeUtils.js.map +7 -1
  119. package/LayerService.test.js +0 -160
  120. package/LayerService.test.js.map +0 -1
  121. package/Projections.js +0 -16
  122. package/Projections.js.map +0 -1
  123. package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js +0 -88
  124. package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js.map +0 -1
  125. package/components/BaseLayerToggler/BaseLayerToggler.js +0 -490
  126. package/components/BaseLayerToggler/BaseLayerToggler.js.map +0 -1
  127. package/components/BaseLayerToggler/BaseLayerToggler.md.scss +0 -9
  128. package/components/BaseLayerToggler/BaseLayerToggler.scss +0 -49
  129. package/components/BaseLayerToggler/BaseLayerToggler.test.js +0 -127
  130. package/components/BaseLayerToggler/BaseLayerToggler.test.js.map +0 -1
  131. package/components/BaseLayerToggler/index.js +0 -3
  132. package/components/BaseLayerToggler/index.js.map +0 -1
  133. package/components/BasicMap/BasicMap.test.js +0 -288
  134. package/components/BasicMap/BasicMap.test.js.map +0 -1
  135. package/components/CanvasSaveButton/CanvasSaveButton.test.js +0 -173
  136. package/components/CanvasSaveButton/CanvasSaveButton.test.js.map +0 -1
  137. package/components/Copyright/Copyright.test.js +0 -133
  138. package/components/Copyright/Copyright.test.js.map +0 -1
  139. package/components/FeatureExportButton/FeatureExportButton.test.js +0 -407
  140. package/components/FeatureExportButton/FeatureExportButton.test.js.map +0 -1
  141. package/components/FilterButton/FilterButton.test.js +0 -48
  142. package/components/FilterButton/FilterButton.test.js.map +0 -1
  143. package/components/FitExtent/FitExtent.test.js +0 -44
  144. package/components/FitExtent/FitExtent.test.js.map +0 -1
  145. package/components/FollowButton/FollowButton.test.js +0 -57
  146. package/components/FollowButton/FollowButton.test.js.map +0 -1
  147. package/components/Geolocation/Geolocation.test.js +0 -263
  148. package/components/Geolocation/Geolocation.test.js.map +0 -1
  149. package/components/LayerTree/LayerTree.test.js +0 -323
  150. package/components/LayerTree/LayerTree.test.js.map +0 -1
  151. package/components/MousePosition/MousePosition.test.js +0 -125
  152. package/components/MousePosition/MousePosition.test.js.map +0 -1
  153. package/components/NorthArrow/NorthArrow.test.js +0 -106
  154. package/components/NorthArrow/NorthArrow.test.js.map +0 -1
  155. package/components/Overlay/Overlay.test.js +0 -145
  156. package/components/Overlay/Overlay.test.js.map +0 -1
  157. package/components/Permalink/Permalink.test.js +0 -267
  158. package/components/Permalink/Permalink.test.js.map +0 -1
  159. package/components/Popup/Popup.test.js +0 -291
  160. package/components/Popup/Popup.test.js.map +0 -1
  161. package/components/ResizeHandler/ResizeHandler.test.js +0 -410
  162. package/components/ResizeHandler/ResizeHandler.test.js.map +0 -1
  163. package/components/RouteSchedule/RouteSchedule.test.js +0 -102
  164. package/components/RouteSchedule/RouteSchedule.test.js.map +0 -1
  165. package/components/ScaleLine/ScaleLine.test.js +0 -32
  166. package/components/ScaleLine/ScaleLine.test.js.map +0 -1
  167. package/components/Search/Search.test.js +0 -15
  168. package/components/Search/Search.test.js.map +0 -1
  169. package/components/StopsFinder/StopsFinder.test.js +0 -19
  170. package/components/StopsFinder/StopsFinder.test.js.map +0 -1
  171. package/components/TrackerControl/TrackerControl.test.js +0 -17
  172. package/components/TrackerControl/TrackerControl.test.js.map +0 -1
  173. package/components/Zoom/Zoom.test.js +0 -150
  174. package/components/Zoom/Zoom.test.js.map +0 -1
  175. package/styleguidist/ComponentsList.js +0 -52
  176. package/styleguidist/ComponentsList.js.map +0 -1
  177. package/styleguidist/StyleGuide.js +0 -253
  178. package/styleguidist/StyleGuide.js.map +0 -1
  179. package/utils/KML.test.js +0 -163
  180. package/utils/KML.test.js.map +0 -1
  181. package/utils/KMLFormat.test.js +0 -22
  182. package/utils/KMLFormat.test.js.map +0 -1
  183. package/utils/getPolygonPattern.test.js +0 -66
  184. package/utils/getPolygonPattern.test.js.map +0 -1
  185. package/utils/timeUtils.test.js +0 -32
  186. package/utils/timeUtils.test.js.map +0 -1
@@ -1,127 +0,0 @@
1
- /* eslint-disable react/jsx-props-no-spreading */
2
- import React from 'react';
3
- import OLMap from 'ol/Map';
4
- import { fireEvent, render, screen } from '@testing-library/react';
5
- import { Layer } from 'mobility-toolbox-js/ol';
6
- import BaseLayerToggler from './BaseLayerToggler';
7
- import LayerService from '../../LayerService';
8
-
9
- var shallowComp = function (layers, props) {
10
- var map = new OLMap({});
11
- var layerService = new LayerService(layers);
12
- return render(
13
- React.createElement( BaseLayerToggler, Object.assign({},
14
- { layerService: layerService, map: map }, (props || {})))
15
- );
16
- };
17
- var mountComp = function (layers, props) {
18
- var map = new OLMap({});
19
- var layerService = new LayerService(layers);
20
- return render(
21
- React.createElement( BaseLayerToggler, Object.assign({},
22
- { layerService: layerService, map: map }, (props || {})))
23
- );
24
- };
25
-
26
- var expectSnapshot = function (layers, props) {
27
- var map = new OLMap({});
28
- var layerService = new LayerService(layers);
29
- var ref = render(
30
- React.createElement( BaseLayerToggler, Object.assign({},
31
- { layerService: layerService, map: map }, (props || {})))
32
- );
33
- var container = ref.container;
34
- expect(container.innerHTML).toMatchSnapshot();
35
- };
36
-
37
- describe('BaseLayerToggler', function () {
38
- var layers;
39
-
40
- beforeEach(function () {
41
- layers = [
42
- new Layer({
43
- name: 'bl1',
44
- isBaseLayer: true,
45
- }),
46
- new Layer({
47
- name: 'bl2',
48
- isBaseLayer: true,
49
- visible: false,
50
- }),
51
- new Layer({
52
- name: 'bl3',
53
- isBaseLayer: true,
54
- visible: false,
55
- }) ];
56
- });
57
- describe('matches snapshots', function () {
58
- test('using default properties.', function () {
59
- expectSnapshot(layers);
60
- });
61
- });
62
-
63
- test('initialize correctly the state', function () {
64
- shallowComp(layers);
65
- expect(layers[0].visible).toBe(true);
66
- });
67
-
68
- test('goes forward through all available layer except the current layer displayed on the map.', async function () {
69
- var ref = shallowComp(layers);
70
- var container = ref.container;
71
- expect(layers[0].visible).toBe(true);
72
- await fireEvent.click(
73
- container.querySelector('.rs-base-layer-toggle-button')
74
- );
75
- expect(layers[1].visible).toBe(true);
76
-
77
- // Layer at index 0 is displayed on the map so we must ignore it
78
- await fireEvent.click(container.querySelector('.rs-base-layer-next'));
79
- await fireEvent.click(
80
- container.querySelector('.rs-base-layer-toggle-button')
81
- );
82
- expect(layers[2].visible).toBe(true);
83
-
84
- await fireEvent.click(container.querySelector('.rs-base-layer-next'));
85
- await fireEvent.click(
86
- container.querySelector('.rs-base-layer-toggle-button')
87
- );
88
- expect(layers[0].visible).toBe(true);
89
- });
90
-
91
- test('goes backward through all available layer except the current layer displayed on the map.', async function () {
92
- var ref = shallowComp(layers);
93
- var container = ref.container;
94
- expect(layers[0].visible).toBe(true);
95
-
96
- // Layer at index 0 is displayed on the map so we must ignore it
97
- await fireEvent.click(container.querySelector('.rs-base-layer-previous'));
98
- await fireEvent.click(
99
- container.querySelector('.rs-base-layer-toggle-button')
100
- );
101
- expect(layers[2].visible).toBe(true);
102
-
103
- await fireEvent.click(container.querySelector('.rs-base-layer-next'));
104
- await fireEvent.click(
105
- container.querySelector('.rs-base-layer-toggle-button')
106
- );
107
- expect(layers[1].visible).toBe(true);
108
- });
109
-
110
- test('hide baseLayerToggler if only one baselayer', function () {
111
- var ref = mountComp([layers[0]]);
112
- var container = ref.container;
113
- expect(container.innerHTML).toBe('');
114
- });
115
-
116
- test('should use children', function () {
117
- shallowComp(layers, {
118
- prevButtonContent: 'prev',
119
- nextButtonContent: 'next',
120
- });
121
-
122
- expect(screen.getByText('next')).not.toBeNull();
123
- expect(screen.getByText('prev')).not.toBeNull();
124
- });
125
- });
126
-
127
- //# sourceMappingURL=BaseLayerToggler.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseLayerToggler.test.js","sources":["../../../src/components/BaseLayerToggler/BaseLayerToggler.test.js"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport OLMap from 'ol/Map';\nimport { fireEvent, render, screen } from '@testing-library/react';\nimport { Layer } from 'mobility-toolbox-js/ol';\nimport BaseLayerToggler from './BaseLayerToggler';\nimport LayerService from '../../LayerService';\n\nconst shallowComp = (layers, props) => {\n const map = new OLMap({});\n const layerService = new LayerService(layers);\n return render(\n <BaseLayerToggler\n layerService={layerService}\n map={map}\n {...(props || {})}\n />,\n );\n};\nconst mountComp = (layers, props) => {\n const map = new OLMap({});\n const layerService = new LayerService(layers);\n return render(\n <BaseLayerToggler\n layerService={layerService}\n map={map}\n {...(props || {})}\n />,\n );\n};\n\nconst expectSnapshot = (layers, props) => {\n const map = new OLMap({});\n const layerService = new LayerService(layers);\n const { container } = render(\n <BaseLayerToggler\n layerService={layerService}\n map={map}\n {...(props || {})}\n />,\n );\n expect(container.innerHTML).toMatchSnapshot();\n};\n\ndescribe('BaseLayerToggler', () => {\n let layers;\n\n beforeEach(() => {\n layers = [\n new Layer({\n name: 'bl1',\n isBaseLayer: true,\n }),\n new Layer({\n name: 'bl2',\n isBaseLayer: true,\n visible: false,\n }),\n new Layer({\n name: 'bl3',\n isBaseLayer: true,\n visible: false,\n }),\n ];\n });\n describe('matches snapshots', () => {\n test('using default properties.', () => {\n expectSnapshot(layers);\n });\n });\n\n test('initialize correctly the state', () => {\n shallowComp(layers);\n expect(layers[0].visible).toBe(true);\n });\n\n test('goes forward through all available layer except the current layer displayed on the map.', async () => {\n const { container } = shallowComp(layers);\n expect(layers[0].visible).toBe(true);\n await fireEvent.click(\n container.querySelector('.rs-base-layer-toggle-button'),\n );\n expect(layers[1].visible).toBe(true);\n\n // Layer at index 0 is displayed on the map so we must ignore it\n await fireEvent.click(container.querySelector('.rs-base-layer-next'));\n await fireEvent.click(\n container.querySelector('.rs-base-layer-toggle-button'),\n );\n expect(layers[2].visible).toBe(true);\n\n await fireEvent.click(container.querySelector('.rs-base-layer-next'));\n await fireEvent.click(\n container.querySelector('.rs-base-layer-toggle-button'),\n );\n expect(layers[0].visible).toBe(true);\n });\n\n test('goes backward through all available layer except the current layer displayed on the map.', async () => {\n const { container } = shallowComp(layers);\n expect(layers[0].visible).toBe(true);\n\n // Layer at index 0 is displayed on the map so we must ignore it\n await fireEvent.click(container.querySelector('.rs-base-layer-previous'));\n await fireEvent.click(\n container.querySelector('.rs-base-layer-toggle-button'),\n );\n expect(layers[2].visible).toBe(true);\n\n await fireEvent.click(container.querySelector('.rs-base-layer-next'));\n await fireEvent.click(\n container.querySelector('.rs-base-layer-toggle-button'),\n );\n expect(layers[1].visible).toBe(true);\n });\n\n test('hide baseLayerToggler if only one baselayer', () => {\n const { container } = mountComp([layers[0]]);\n expect(container.innerHTML).toBe('');\n });\n\n test('should use children', () => {\n shallowComp(layers, {\n prevButtonContent: 'prev',\n nextButtonContent: 'next',\n });\n\n expect(screen.getByText('next')).not.toBeNull();\n expect(screen.getByText('prev')).not.toBeNull();\n });\n});\n"],"names":["const","let"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export { default } from './BaseLayerToggler';
2
-
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/BaseLayerToggler/index.js"],"sourcesContent":["export { default } from './BaseLayerToggler';\n"],"names":[],"mappings":"AAAA,SAAS,OAAO,QAAQ,oBAAoB,CAAC;"}
@@ -1,288 +0,0 @@
1
- import 'jest-canvas-mock';
2
- import proj4 from 'proj4';
3
- import { register } from 'ol/proj/proj4';
4
- import React from 'react';
5
- import ResizeObserver from 'resize-observer-polyfill';
6
- import { Layer } from 'mobility-toolbox-js/ol';
7
- import MapEvent from 'ol/MapEvent';
8
- import OLLayer from 'ol/layer/Vector';
9
- import OLMap from 'ol/Map';
10
- import OLView from 'ol/View';
11
- import { render } from '@testing-library/react';
12
- import BasicMap from './BasicMap';
13
-
14
- proj4.defs(
15
- 'EPSG:21781',
16
- '+proj=somerc +lat_0=46.95240555555556 ' +
17
- '+lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel ' +
18
- '+towgs84=674.4,15.1,405.3,0,0,0,0 +units=m +no_defs'
19
- );
20
-
21
- register(proj4);
22
-
23
- var extent = [0, 0, 1000, 1000];
24
- var olLayers = [
25
- new Layer({
26
- name: 'foo',
27
- olLayer: new OLLayer({}),
28
- visible: true,
29
- }) ];
30
-
31
- describe('BasicMap', function () {
32
- var olMap;
33
- beforeEach(function () {
34
- var olView = new OLView();
35
- olMap = new OLMap({ view: olView });
36
- });
37
-
38
- test('should be rendered', function () {
39
- var setTarget = jest.spyOn(olMap, 'setTarget');
40
- render(React.createElement( BasicMap, { map: olMap }));
41
- expect(setTarget).toHaveBeenCalled();
42
- });
43
-
44
- test('should be rendered with touchAction to none', function () {
45
- render(React.createElement( BasicMap, { map: olMap }));
46
- expect(olMap.getViewport().style.touchAction).toBe('none');
47
- expect(olMap.getViewport().style.msTouchAction).toBe('none');
48
- expect(olMap.getViewport().getAttribute('touch-action')).toBe('none');
49
- });
50
-
51
- test('uses onMapMoved function', function () {
52
- var spy = jest.fn(function () {});
53
- var spy2 = jest.fn();
54
- var evt = new MapEvent('moveend', olMap);
55
-
56
- // Test componentDidMount
57
- var ref = render(React.createElement( BasicMap, { map: olMap, onMapMoved: spy }));
58
- var rerender = ref.rerender;
59
- olMap.dispatchEvent(evt);
60
- expect(spy).toHaveBeenCalledTimes(1);
61
- expect(spy).toHaveBeenCalledWith(evt);
62
-
63
- // Test componentDidUpdate
64
- rerender(React.createElement( BasicMap, { map: olMap, onMapMoved: spy2 }));
65
- olMap.dispatchEvent(evt);
66
- expect(spy).toHaveBeenCalledTimes(1);
67
- expect(spy2).toHaveBeenCalledTimes(1);
68
- expect(spy2).toHaveBeenCalledWith(evt);
69
-
70
- // Test componentDidUpdate
71
- rerender(React.createElement( BasicMap, { map: olMap, onMapMoved: null }));
72
- olMap.dispatchEvent(evt);
73
- expect(spy).toHaveBeenCalledTimes(1);
74
- expect(spy2).toHaveBeenCalledTimes(1);
75
- });
76
-
77
- test('uses onFeaturesClick function', function () {
78
- var spy = jest.fn();
79
- var spy2 = jest.fn();
80
- var evt = new MapEvent('singleclick', olMap);
81
-
82
- // Test componentDidMount
83
- var ref = render(React.createElement( BasicMap, { map: olMap, onFeaturesClick: spy }));
84
- var rerender = ref.rerender;
85
- olMap.dispatchEvent(evt);
86
- expect(spy).toHaveBeenCalledTimes(1);
87
- expect(spy).toHaveBeenCalledWith([], evt);
88
-
89
- // Test componentDidUpdate
90
- rerender(React.createElement( BasicMap, { map: olMap, onFeaturesClick: spy2 }));
91
- olMap.dispatchEvent(evt);
92
- expect(spy).toHaveBeenCalledTimes(1);
93
- expect(spy2).toHaveBeenCalledTimes(1);
94
- expect(spy2).toHaveBeenCalledWith([], evt);
95
-
96
- // Test componentDidUpdate
97
- rerender(React.createElement( BasicMap, { map: olMap, onFeaturesClick: null }));
98
- olMap.dispatchEvent(evt);
99
- expect(spy).toHaveBeenCalledTimes(1);
100
- expect(spy2).toHaveBeenCalledTimes(1);
101
- });
102
-
103
- test('uses onFeaturesHover function', function () {
104
- var spy = jest.fn();
105
- var spy2 = jest.fn();
106
- var evt = new MapEvent('pointermove', olMap);
107
-
108
- // Test componentDidMount
109
- var ref = render(
110
- React.createElement( BasicMap, { map: olMap, onFeaturesHover: spy }),
111
- {
112
- lifecycleExperimental: true,
113
- }
114
- );
115
- var rerender = ref.rerender;
116
- olMap.dispatchEvent(evt);
117
- expect(spy).toHaveBeenCalledTimes(1);
118
- expect(spy).toHaveBeenCalledWith([], evt);
119
-
120
- // Test componentDidUpdate
121
- rerender(React.createElement( BasicMap, { map: olMap, onFeaturesHover: spy2 }));
122
- olMap.dispatchEvent(evt);
123
- expect(spy).toHaveBeenCalledTimes(1);
124
- expect(spy2).toHaveBeenCalledTimes(1);
125
- expect(spy2).toHaveBeenCalledWith([], evt);
126
-
127
- // Test componentDidUpdate
128
- rerender(React.createElement( BasicMap, { map: olMap, onFeaturesHover: null }));
129
- olMap.dispatchEvent(evt);
130
- expect(spy).toHaveBeenCalledTimes(1);
131
- expect(spy2).toHaveBeenCalledTimes(1);
132
- });
133
-
134
- test('should be rendered with a default map', function () {
135
- var ref = render(React.createElement( BasicMap, null ));
136
- var container = ref.container;
137
- expect(!!container.querySelector('.ol-viewport')).toBe(true);
138
- });
139
-
140
- test('should be rendered with layers and an extent', function () {
141
- render(
142
- React.createElement( BasicMap, {
143
- map: olMap, layers: olLayers, extent: extent, viewOptions: {
144
- minZoom: 16,
145
- maxZoom: 22,
146
- projection: 'EPSG:21781',
147
- } })
148
- );
149
- expect(olMap.getLayers().getLength()).toBe(1);
150
- expect(olMap.getView().calculateExtent()).toEqual([
151
- 380.70084231351245, 380.70084231351245, 619.2991576864875,
152
- 619.2991576864875 ]);
153
- });
154
-
155
- test('center shoud be set', function () {
156
- var ref = render(React.createElement( BasicMap, { map: olMap }));
157
- var rerender = ref.rerender;
158
- var setCenter = jest.spyOn(olMap.getView(), 'setCenter');
159
- rerender(React.createElement( BasicMap, { map: olMap, center: [0, 0] }));
160
- expect(setCenter).toHaveBeenCalled();
161
- });
162
-
163
- test('zoom shoud be set', function () {
164
- var ref = render(React.createElement( BasicMap, { map: olMap, zoom: 5 }));
165
- var rerender = ref.rerender;
166
- expect(olMap.getView().getZoom()).toBe(5);
167
- rerender(React.createElement( BasicMap, { map: olMap, zoom: 2 }));
168
- expect(olMap.getView().getZoom()).toBe(2);
169
- });
170
-
171
- test('resolution shoud be set', function () {
172
- var ref = render(React.createElement( BasicMap, { map: olMap, resolution: 100 }));
173
- var rerender = ref.rerender;
174
- expect(olMap.getView().getResolution()).toBe(100);
175
- rerender(React.createElement( BasicMap, { map: olMap, resolution: 5 }));
176
- expect(olMap.getView().getResolution()).toBe(5);
177
- });
178
-
179
- test('animation shoud be set', function () {
180
- var obj = {
181
- zoom: 4,
182
- };
183
- var ref = render(React.createElement( BasicMap, { map: olMap }));
184
- var rerender = ref.rerender;
185
- var spy = jest.spyOn(olMap.getView(), 'animate');
186
- rerender(React.createElement( BasicMap, { map: olMap, animationOptions: obj }));
187
- expect(spy).toHaveBeenCalledWith(obj);
188
- });
189
-
190
- test('layers shoud be updated', function () {
191
- var addLayer = jest.spyOn(olMap, 'addLayer');
192
- var ref = render(React.createElement( BasicMap, { map: olMap }));
193
- var rerender = ref.rerender;
194
- var layer = new Layer({ name: 'test', olLayer: new OLLayer() });
195
- rerender(React.createElement( BasicMap, { map: olMap, layers: [layer] }));
196
- expect(addLayer).toHaveBeenCalled();
197
- });
198
-
199
- test('should be fitted if extent is updated', function () {
200
- var fitExtent = jest.spyOn(OLView.prototype, 'fit');
201
- var ref = render(React.createElement( BasicMap, { map: olMap }));
202
- var rerender = ref.rerender;
203
- rerender(React.createElement( BasicMap, { map: olMap, extent: [1, 2, 3, 4] }));
204
- expect(fitExtent).toHaveBeenCalled();
205
- });
206
-
207
- test('should be zoomed if zoom is updated', function () {
208
- var setZoom = jest.spyOn(OLView.prototype, 'setZoom');
209
- var ref = render(React.createElement( BasicMap, { map: olMap }));
210
- var rerender = ref.rerender;
211
- rerender(React.createElement( BasicMap, { map: olMap, zoom: 15 }));
212
- expect(setZoom).toHaveBeenCalledWith(15);
213
- });
214
-
215
- test('should be observed by ResizeHandler', function () {
216
- var spy = jest.spyOn(ResizeObserver.prototype, 'observe');
217
- render(React.createElement( BasicMap, { map: olMap }));
218
- expect(spy).toHaveBeenCalledWith(olMap.getTargetElement());
219
- expect(spy).toHaveBeenCalledTimes(1);
220
- });
221
-
222
- test('size is updated when div is resized', function () {
223
- var spy = jest.spyOn(olMap, 'updateSize');
224
- render(React.createElement( BasicMap, { map: olMap }));
225
- expect(spy).toHaveBeenCalledTimes(2);
226
- // The mock class set the onResize property, we just have to run it to
227
- // simulate a resize
228
- ResizeObserver.onResize([
229
- {
230
- target: olMap.getTargetElement(),
231
- contentRect: {
232
- width: 20,
233
- height: 20,
234
- },
235
- } ]);
236
- expect(spy).toHaveBeenCalledTimes(3);
237
- });
238
-
239
- describe('#setLayers()', function () {
240
- test('init all layers and terminate al previous layer.', function () {
241
- var layer0 = new Layer({ key: 'test1' });
242
- var spyInit0 = jest.spyOn(layer0, 'init');
243
- var spyTerminate0 = jest.spyOn(layer0, 'terminate');
244
- var layer1 = new Layer({ key: 'test1' });
245
- var spyInit1 = jest.spyOn(layer1, 'init');
246
- var spyTerminate1 = jest.spyOn(layer1, 'terminate');
247
- var layer2 = new Layer({ key: 'test2' });
248
- var spyInit2 = jest.spyOn(layer2, 'init');
249
- var spyTerminate2 = jest.spyOn(layer2, 'terminate');
250
- var layer3 = new Layer({ key: 'test3' });
251
- var spyInit3 = jest.spyOn(layer3, 'init');
252
- var spyTerminate3 = jest.spyOn(layer3, 'terminate');
253
- var layer4 = new Layer({ key: 'test4' });
254
- var spyInit4 = jest.spyOn(layer4, 'init');
255
- var spyTerminate4 = jest.spyOn(layer4, 'terminate');
256
- var startLayers = [layer1, layer3];
257
- var ref = render(
258
- React.createElement( BasicMap, { map: olMap, layers: startLayers })
259
- );
260
- var rerender = ref.rerender;
261
- expect(spyInit0).toHaveBeenCalledTimes(0);
262
- expect(spyInit1).toHaveBeenCalledTimes(1);
263
- expect(spyInit2).toHaveBeenCalledTimes(0);
264
- expect(spyInit3).toHaveBeenCalledTimes(1);
265
- expect(spyInit4).toHaveBeenCalledTimes(0);
266
- expect(spyTerminate0).toHaveBeenCalledTimes(0);
267
- expect(spyTerminate1).toHaveBeenCalledTimes(1);
268
- expect(spyTerminate2).toHaveBeenCalledTimes(0);
269
- expect(spyTerminate3).toHaveBeenCalledTimes(1);
270
- expect(spyTerminate4).toHaveBeenCalledTimes(0);
271
-
272
- var layers = [layer0, layer2, layer3, layer4];
273
- rerender(React.createElement( BasicMap, { map: olMap, layers: layers }));
274
- expect(spyInit0).toHaveBeenCalledTimes(1);
275
- expect(spyInit1).toHaveBeenCalledTimes(1);
276
- expect(spyInit2).toHaveBeenCalledTimes(1);
277
- expect(spyInit3).toHaveBeenCalledTimes(2);
278
- expect(spyInit4).toHaveBeenCalledTimes(1);
279
- expect(spyTerminate0).toHaveBeenCalledTimes(1);
280
- expect(spyTerminate1).toHaveBeenCalledTimes(2);
281
- expect(spyTerminate2).toHaveBeenCalledTimes(1);
282
- expect(spyTerminate3).toHaveBeenCalledTimes(3);
283
- expect(spyTerminate4).toHaveBeenCalledTimes(1);
284
- });
285
- });
286
- });
287
-
288
- //# sourceMappingURL=BasicMap.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BasicMap.test.js","sources":["../../../src/components/BasicMap/BasicMap.test.js"],"sourcesContent":["import 'jest-canvas-mock';\nimport proj4 from 'proj4';\nimport { register } from 'ol/proj/proj4';\nimport React from 'react';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport { Layer } from 'mobility-toolbox-js/ol';\nimport MapEvent from 'ol/MapEvent';\nimport OLLayer from 'ol/layer/Vector';\nimport OLMap from 'ol/Map';\nimport OLView from 'ol/View';\nimport { render } from '@testing-library/react';\nimport BasicMap from './BasicMap';\n\nproj4.defs(\n 'EPSG:21781',\n '+proj=somerc +lat_0=46.95240555555556 ' +\n '+lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel ' +\n '+towgs84=674.4,15.1,405.3,0,0,0,0 +units=m +no_defs',\n);\n\nregister(proj4);\n\nconst extent = [0, 0, 1000, 1000];\nconst olLayers = [\n new Layer({\n name: 'foo',\n olLayer: new OLLayer({}),\n visible: true,\n }),\n];\n\ndescribe('BasicMap', () => {\n let olMap;\n beforeEach(() => {\n const olView = new OLView();\n olMap = new OLMap({ view: olView });\n });\n\n test('should be rendered', () => {\n const setTarget = jest.spyOn(olMap, 'setTarget');\n render(<BasicMap map={olMap} />);\n expect(setTarget).toHaveBeenCalled();\n });\n\n test('should be rendered with touchAction to none', () => {\n render(<BasicMap map={olMap} />);\n expect(olMap.getViewport().style.touchAction).toBe('none');\n expect(olMap.getViewport().style.msTouchAction).toBe('none');\n expect(olMap.getViewport().getAttribute('touch-action')).toBe('none');\n });\n\n test('uses onMapMoved function', () => {\n const spy = jest.fn(() => {});\n const spy2 = jest.fn();\n const evt = new MapEvent('moveend', olMap);\n\n // Test componentDidMount\n const { rerender } = render(<BasicMap map={olMap} onMapMoved={spy} />);\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy).toHaveBeenCalledWith(evt);\n\n // Test componentDidUpdate\n rerender(<BasicMap map={olMap} onMapMoved={spy2} />);\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledWith(evt);\n\n // Test componentDidUpdate\n rerender(<BasicMap map={olMap} onMapMoved={null} />);\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(1);\n });\n\n test('uses onFeaturesClick function', () => {\n const spy = jest.fn();\n const spy2 = jest.fn();\n const evt = new MapEvent('singleclick', olMap);\n\n // Test componentDidMount\n const { rerender } = render(<BasicMap map={olMap} onFeaturesClick={spy} />);\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy).toHaveBeenCalledWith([], evt);\n\n // Test componentDidUpdate\n rerender(<BasicMap map={olMap} onFeaturesClick={spy2} />);\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledWith([], evt);\n\n // Test componentDidUpdate\n rerender(<BasicMap map={olMap} onFeaturesClick={null} />);\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(1);\n });\n\n test('uses onFeaturesHover function', () => {\n const spy = jest.fn();\n const spy2 = jest.fn();\n const evt = new MapEvent('pointermove', olMap);\n\n // Test componentDidMount\n const { rerender } = render(\n <BasicMap map={olMap} onFeaturesHover={spy} />,\n {\n lifecycleExperimental: true,\n },\n );\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy).toHaveBeenCalledWith([], evt);\n\n // Test componentDidUpdate\n rerender(<BasicMap map={olMap} onFeaturesHover={spy2} />);\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledWith([], evt);\n\n // Test componentDidUpdate\n rerender(<BasicMap map={olMap} onFeaturesHover={null} />);\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(1);\n });\n\n test('should be rendered with a default map', () => {\n const { container } = render(<BasicMap />);\n expect(!!container.querySelector('.ol-viewport')).toBe(true);\n });\n\n test('should be rendered with layers and an extent', () => {\n render(\n <BasicMap\n map={olMap}\n layers={olLayers}\n extent={extent}\n viewOptions={{\n minZoom: 16,\n maxZoom: 22,\n projection: 'EPSG:21781',\n }}\n />,\n );\n expect(olMap.getLayers().getLength()).toBe(1);\n expect(olMap.getView().calculateExtent()).toEqual([\n 380.70084231351245, 380.70084231351245, 619.2991576864875,\n 619.2991576864875,\n ]);\n });\n\n test('center shoud be set', () => {\n const { rerender } = render(<BasicMap map={olMap} />);\n const setCenter = jest.spyOn(olMap.getView(), 'setCenter');\n rerender(<BasicMap map={olMap} center={[0, 0]} />);\n expect(setCenter).toHaveBeenCalled();\n });\n\n test('zoom shoud be set', () => {\n const { rerender } = render(<BasicMap map={olMap} zoom={5} />);\n expect(olMap.getView().getZoom()).toBe(5);\n rerender(<BasicMap map={olMap} zoom={2} />);\n expect(olMap.getView().getZoom()).toBe(2);\n });\n\n test('resolution shoud be set', () => {\n const { rerender } = render(<BasicMap map={olMap} resolution={100} />);\n expect(olMap.getView().getResolution()).toBe(100);\n rerender(<BasicMap map={olMap} resolution={5} />);\n expect(olMap.getView().getResolution()).toBe(5);\n });\n\n test('animation shoud be set', () => {\n const obj = {\n zoom: 4,\n };\n const { rerender } = render(<BasicMap map={olMap} />);\n const spy = jest.spyOn(olMap.getView(), 'animate');\n rerender(<BasicMap map={olMap} animationOptions={obj} />);\n expect(spy).toHaveBeenCalledWith(obj);\n });\n\n test('layers shoud be updated', () => {\n const addLayer = jest.spyOn(olMap, 'addLayer');\n const { rerender } = render(<BasicMap map={olMap} />);\n const layer = new Layer({ name: 'test', olLayer: new OLLayer() });\n rerender(<BasicMap map={olMap} layers={[layer]} />);\n expect(addLayer).toHaveBeenCalled();\n });\n\n test('should be fitted if extent is updated', () => {\n const fitExtent = jest.spyOn(OLView.prototype, 'fit');\n const { rerender } = render(<BasicMap map={olMap} />);\n rerender(<BasicMap map={olMap} extent={[1, 2, 3, 4]} />);\n expect(fitExtent).toHaveBeenCalled();\n });\n\n test('should be zoomed if zoom is updated', () => {\n const setZoom = jest.spyOn(OLView.prototype, 'setZoom');\n const { rerender } = render(<BasicMap map={olMap} />);\n rerender(<BasicMap map={olMap} zoom={15} />);\n expect(setZoom).toHaveBeenCalledWith(15);\n });\n\n test('should be observed by ResizeHandler', () => {\n const spy = jest.spyOn(ResizeObserver.prototype, 'observe');\n render(<BasicMap map={olMap} />);\n expect(spy).toHaveBeenCalledWith(olMap.getTargetElement());\n expect(spy).toHaveBeenCalledTimes(1);\n });\n\n test('size is updated when div is resized', () => {\n const spy = jest.spyOn(olMap, 'updateSize');\n render(<BasicMap map={olMap} />);\n expect(spy).toHaveBeenCalledTimes(2);\n // The mock class set the onResize property, we just have to run it to\n // simulate a resize\n ResizeObserver.onResize([\n {\n target: olMap.getTargetElement(),\n contentRect: {\n width: 20,\n height: 20,\n },\n },\n ]);\n expect(spy).toHaveBeenCalledTimes(3);\n });\n\n describe('#setLayers()', () => {\n test('init all layers and terminate al previous layer.', () => {\n const layer0 = new Layer({ key: 'test1' });\n const spyInit0 = jest.spyOn(layer0, 'init');\n const spyTerminate0 = jest.spyOn(layer0, 'terminate');\n const layer1 = new Layer({ key: 'test1' });\n const spyInit1 = jest.spyOn(layer1, 'init');\n const spyTerminate1 = jest.spyOn(layer1, 'terminate');\n const layer2 = new Layer({ key: 'test2' });\n const spyInit2 = jest.spyOn(layer2, 'init');\n const spyTerminate2 = jest.spyOn(layer2, 'terminate');\n const layer3 = new Layer({ key: 'test3' });\n const spyInit3 = jest.spyOn(layer3, 'init');\n const spyTerminate3 = jest.spyOn(layer3, 'terminate');\n const layer4 = new Layer({ key: 'test4' });\n const spyInit4 = jest.spyOn(layer4, 'init');\n const spyTerminate4 = jest.spyOn(layer4, 'terminate');\n const startLayers = [layer1, layer3];\n const { rerender } = render(\n <BasicMap map={olMap} layers={startLayers} />,\n );\n expect(spyInit0).toHaveBeenCalledTimes(0);\n expect(spyInit1).toHaveBeenCalledTimes(1);\n expect(spyInit2).toHaveBeenCalledTimes(0);\n expect(spyInit3).toHaveBeenCalledTimes(1);\n expect(spyInit4).toHaveBeenCalledTimes(0);\n expect(spyTerminate0).toHaveBeenCalledTimes(0);\n expect(spyTerminate1).toHaveBeenCalledTimes(1);\n expect(spyTerminate2).toHaveBeenCalledTimes(0);\n expect(spyTerminate3).toHaveBeenCalledTimes(1);\n expect(spyTerminate4).toHaveBeenCalledTimes(0);\n\n const layers = [layer0, layer2, layer3, layer4];\n rerender(<BasicMap map={olMap} layers={layers} />);\n expect(spyInit0).toHaveBeenCalledTimes(1);\n expect(spyInit1).toHaveBeenCalledTimes(1);\n expect(spyInit2).toHaveBeenCalledTimes(1);\n expect(spyInit3).toHaveBeenCalledTimes(2);\n expect(spyInit4).toHaveBeenCalledTimes(1);\n expect(spyTerminate0).toHaveBeenCalledTimes(1);\n expect(spyTerminate1).toHaveBeenCalledTimes(2);\n expect(spyTerminate2).toHaveBeenCalledTimes(1);\n expect(spyTerminate3).toHaveBeenCalledTimes(3);\n expect(spyTerminate4).toHaveBeenCalledTimes(1);\n });\n });\n});\n"],"names":["const","let"],"mappings":"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"}
@@ -1,173 +0,0 @@
1
- import 'jest-canvas-mock';
2
- import React from 'react';
3
- import renderer from 'react-test-renderer';
4
- import { configure, shallow } from 'enzyme';
5
- import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
6
- import Map from 'ol/Map';
7
- import View from 'ol/View';
8
- import { TiImage } from 'react-icons/ti';
9
- import RenderEvent from 'ol/render/Event';
10
- import CanvasSaveButton from './CanvasSaveButton';
11
-
12
- configure({ adapter: new Adapter() });
13
-
14
- describe('CanvasSaveButton', function () {
15
- var olMap;
16
- var conf = {
17
- title: 'Karte als Bild speichern.',
18
- icon: React.createElement( TiImage, { focusable: false }),
19
- className: 'ta-example',
20
- saveFormat: 'image/jpeg',
21
- };
22
-
23
- beforeEach(function () {
24
- var target = document.createElement('div');
25
- document.body.appendChild(target);
26
- target.style.width = '100px';
27
- target.style.height = '100px';
28
- olMap = new Map({
29
- target: target,
30
- controls: [],
31
- view: new View({
32
- center: [0, 0],
33
- zoom: 0,
34
- }),
35
- });
36
- olMap.getView().setCenter([1, 1]);
37
- });
38
-
39
- afterEach(function () {
40
- if (olMap.getTargetElement()) {
41
- document.body.removeChild(olMap.getTargetElement());
42
- }
43
- olMap.setTarget(null);
44
- });
45
-
46
- test('should match snapshot.', function () {
47
- var component = renderer.create(
48
- React.createElement( CanvasSaveButton, { format: conf.saveFormat, map: olMap },
49
- conf.icon
50
- )
51
- );
52
- var tree = component.toJSON();
53
- expect(tree).toMatchSnapshot();
54
- });
55
-
56
- test('should match snapshot with a different attributes', function () {
57
- var component = renderer.create(
58
- // eslint-disable-next-line jsx-a11y/tabindex-no-positive
59
- React.createElement( CanvasSaveButton, { title: conf.title, className: "foo", tabIndex: "1" },
60
- conf.icon
61
- )
62
- );
63
- var tree = component.toJSON();
64
- expect(tree).toMatchSnapshot();
65
- });
66
-
67
- test('should call onSaveBefore then download then onSaveEnd function on click.', async function (done) {
68
- var saveStart = jest.fn(function (m) {
69
- return Promise.resolve(m);
70
- });
71
- var saveEnd = jest.fn();
72
- var wrapper = shallow(
73
- React.createElement( CanvasSaveButton, {
74
- className: "ta-example", map: olMap, format: conf.saveFormat, onSaveStart: saveStart, onSaveEnd: saveEnd, extraData: {
75
- copyright: {
76
- text: function () {
77
- return (
78
- 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +
79
- 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +
80
- 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +
81
- 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +
82
- 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +
83
- 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +
84
- 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)'
85
- );
86
- },
87
- },
88
- } },
89
- conf.icon
90
- )
91
- );
92
- var link = document.createElement('a');
93
- link.click = jest.fn();
94
- var div = document.createElement('div');
95
- var canvas = document.createElement('canvas');
96
- canvas.toBlob = jest.fn(function (callback) {
97
- return callback();
98
- });
99
- global.URL.createObjectURL = jest.fn(function () {
100
- return 'fooblob';
101
- });
102
- // We use a spy here to be able to correctly restore the initial function
103
- var spy3 = jest
104
- .spyOn(global.document, 'createElement')
105
- .mockImplementation(function (elt) {
106
- if (elt === 'canvas') {
107
- return canvas;
108
- }
109
- if (elt === 'div') {
110
- return div;
111
- }
112
- if (elt === 'a') {
113
- return link;
114
- }
115
- return {};
116
- });
117
- var spy = jest.spyOn(CanvasSaveButton.prototype, 'createCanvasImage');
118
- var spy2 = jest.spyOn(CanvasSaveButton.prototype, 'downloadCanvasImage');
119
- jest
120
- .spyOn(olMap.getTargetElement(), 'getElementsByTagName')
121
- .mockReturnValue([canvas]);
122
- await wrapper.find('.ta-example').simulate('click');
123
- await olMap.dispatchEvent(
124
- new RenderEvent('rendercomplete', undefined, undefined, {
125
- canvas: canvas,
126
- })
127
- );
128
- await window.setTimeout(function () {
129
- expect(spy).toHaveBeenCalledTimes(1);
130
- expect(saveStart).toHaveBeenCalledTimes(1);
131
- expect(saveEnd).toHaveBeenCalledTimes(1);
132
- expect(spy2.mock.calls[0][0]).toBe(canvas);
133
- expect(spy2.mock.calls[0][0].toBlob).toHaveBeenCalledTimes(1);
134
- expect(link.href).toBe('http://localhost/fooblob');
135
- expect(link.download).toBe('.jpg');
136
- expect(link.click).toHaveBeenCalledTimes(1);
137
- spy.mockRestore();
138
- spy2.mockRestore();
139
- spy3.mockRestore();
140
- done();
141
- });
142
- });
143
-
144
- test('stops click event propagation on ie.', function () {
145
- var wrapper = shallow(
146
- React.createElement( CanvasSaveButton, { className: "ta-example", title: conf.title, map: olMap },
147
- conf.icon
148
- )
149
- );
150
-
151
- var evt = {
152
- stopPropagation: jest.fn(),
153
- preventDefault: jest.fn(),
154
- };
155
- window.navigator.msSaveBlob = true;
156
-
157
- var canvas = document.createElement('canvas');
158
- var p = new Promise(function (resolve) {
159
- resolve(canvas);
160
- });
161
- jest
162
- .spyOn(CanvasSaveButton.prototype, 'createCanvasImage')
163
- .mockReturnValue(p);
164
-
165
- wrapper.find('.ta-example').simulate('click', evt);
166
- expect(evt.stopPropagation).toHaveBeenCalledTimes(1);
167
- expect(evt.preventDefault).toHaveBeenCalledTimes(1);
168
-
169
- window.navigator.msSaveBlob = false;
170
- });
171
- });
172
-
173
- //# sourceMappingURL=CanvasSaveButton.test.js.map