diff --git a/test/image/baselines/map_0.png b/test/image/baselines/map_0.png index a45f346f427..02a3a8d9a34 100644 Binary files a/test/image/baselines/map_0.png and b/test/image/baselines/map_0.png differ diff --git a/test/image/baselines/map_angles.png b/test/image/baselines/map_angles.png index 899cb023ca0..7f2c2e886c0 100644 Binary files a/test/image/baselines/map_angles.png and b/test/image/baselines/map_angles.png differ diff --git a/test/image/baselines/map_bubbles-text.png b/test/image/baselines/map_bubbles-text.png index 0c7ab6fbb71..2121c6f5e2d 100644 Binary files a/test/image/baselines/map_bubbles-text.png and b/test/image/baselines/map_bubbles-text.png differ diff --git a/test/image/baselines/map_bubbles.png b/test/image/baselines/map_bubbles.png index 9ac47dc4432..4ff2306e638 100644 Binary files a/test/image/baselines/map_bubbles.png and b/test/image/baselines/map_bubbles.png differ diff --git a/test/image/baselines/map_carto-style.png b/test/image/baselines/map_carto-style.png index 525c50b7e1c..f2f3d46e14b 100644 Binary files a/test/image/baselines/map_carto-style.png and b/test/image/baselines/map_carto-style.png differ diff --git a/test/image/baselines/map_carto-text.png b/test/image/baselines/map_carto-text.png index 9db04dd887d..a78474b4a7e 100644 Binary files a/test/image/baselines/map_carto-text.png and b/test/image/baselines/map_carto-text.png differ diff --git a/test/image/baselines/map_choropleth-multiple.png b/test/image/baselines/map_choropleth-multiple.png index 8b6da1cec7e..15f725be612 100644 Binary files a/test/image/baselines/map_choropleth-multiple.png and b/test/image/baselines/map_choropleth-multiple.png differ diff --git a/test/image/baselines/map_choropleth-raw-geojson.png b/test/image/baselines/map_choropleth-raw-geojson.png index 0d7b5602ee8..e05a8d89d1d 100644 Binary files a/test/image/baselines/map_choropleth-raw-geojson.png and b/test/image/baselines/map_choropleth-raw-geojson.png differ diff --git a/test/image/baselines/map_choropleth0-legend.png b/test/image/baselines/map_choropleth0-legend.png index eb153871eda..3ad760d88ac 100644 Binary files a/test/image/baselines/map_choropleth0-legend.png and b/test/image/baselines/map_choropleth0-legend.png differ diff --git a/test/image/baselines/map_choropleth0.png b/test/image/baselines/map_choropleth0.png index 028009fb102..b0ddc175ac2 100644 Binary files a/test/image/baselines/map_choropleth0.png and b/test/image/baselines/map_choropleth0.png differ diff --git a/test/image/baselines/map_connectgaps.png b/test/image/baselines/map_connectgaps.png index 278e8c1ecc9..5021b309741 100644 Binary files a/test/image/baselines/map_connectgaps.png and b/test/image/baselines/map_connectgaps.png differ diff --git a/test/image/baselines/map_density-multiple.png b/test/image/baselines/map_density-multiple.png index 439f0def531..f637fcb4d28 100644 Binary files a/test/image/baselines/map_density-multiple.png and b/test/image/baselines/map_density-multiple.png differ diff --git a/test/image/baselines/map_density-multiple_legend.png b/test/image/baselines/map_density-multiple_legend.png index 362bcca504d..1783c68f149 100644 Binary files a/test/image/baselines/map_density-multiple_legend.png and b/test/image/baselines/map_density-multiple_legend.png differ diff --git a/test/image/baselines/map_density0.png b/test/image/baselines/map_density0.png index 49aea595fa4..d36bb19bb55 100644 Binary files a/test/image/baselines/map_density0.png and b/test/image/baselines/map_density0.png differ diff --git a/test/image/baselines/map_fill.png b/test/image/baselines/map_fill.png index 611b6bb8f26..c792ddc0cd8 100644 Binary files a/test/image/baselines/map_fill.png and b/test/image/baselines/map_fill.png differ diff --git a/test/image/baselines/map_fonts-supported-metropolis-italic.png b/test/image/baselines/map_fonts-supported-metropolis-italic.png index 207e30f1519..11eca602058 100644 Binary files a/test/image/baselines/map_fonts-supported-metropolis-italic.png and b/test/image/baselines/map_fonts-supported-metropolis-italic.png differ diff --git a/test/image/baselines/map_fonts-supported-metropolis-weight.png b/test/image/baselines/map_fonts-supported-metropolis-weight.png index 69970cbf261..d07904abc7f 100644 Binary files a/test/image/baselines/map_fonts-supported-metropolis-weight.png and b/test/image/baselines/map_fonts-supported-metropolis-weight.png differ diff --git a/test/image/baselines/map_fonts-supported-metropolis.png b/test/image/baselines/map_fonts-supported-metropolis.png index 69970cbf261..d07904abc7f 100644 Binary files a/test/image/baselines/map_fonts-supported-metropolis.png and b/test/image/baselines/map_fonts-supported-metropolis.png differ diff --git a/test/image/baselines/map_geojson-attributes.png b/test/image/baselines/map_geojson-attributes.png index 905f2006d38..e8accd6fd78 100644 Binary files a/test/image/baselines/map_geojson-attributes.png and b/test/image/baselines/map_geojson-attributes.png differ diff --git a/test/image/baselines/map_predefined-styles1.png b/test/image/baselines/map_predefined-styles1.png index da43dc78f1e..48b11947f83 100644 Binary files a/test/image/baselines/map_predefined-styles1.png and b/test/image/baselines/map_predefined-styles1.png differ diff --git a/test/image/baselines/map_symbol-text.png b/test/image/baselines/map_symbol-text.png index aed6e58d078..8b3ad48f766 100644 Binary files a/test/image/baselines/map_symbol-text.png and b/test/image/baselines/map_symbol-text.png differ diff --git a/test/image/baselines/map_texttemplate.png b/test/image/baselines/map_texttemplate.png index b0807e9631b..190fc0b4fd8 100644 Binary files a/test/image/baselines/map_texttemplate.png and b/test/image/baselines/map_texttemplate.png differ diff --git a/test/image/baselines/scattermap_dynamic_defaults.png b/test/image/baselines/scattermap_dynamic_defaults.png index 83f90f30ae0..064853861a4 100644 Binary files a/test/image/baselines/scattermap_dynamic_defaults.png and b/test/image/baselines/scattermap_dynamic_defaults.png differ diff --git a/test/jasmine/tests/choroplethmap_test.js b/test/jasmine/tests/choroplethmap_test.js index 5e587505f67..62354225300 100644 --- a/test/jasmine/tests/choroplethmap_test.js +++ b/test/jasmine/tests/choroplethmap_test.js @@ -713,15 +713,15 @@ describe('Test choroplethmap interactions:', function() { {} ) .then(function() { - _assert('base', { layerCnt: 97 }); + _assert('base', { layerCnt: 99 }); }) .then(function() { return Plotly.deleteTraces(gd, [0]); }) .then(function() { - _assert('w/o trace0', { layerCnt: 95 }); + _assert('w/o trace0', { layerCnt: 97 }); }) .then(function() { return Plotly.addTraces(gd, [trace0]); }) .then(function() { - _assert('after adding trace0', { layerCnt: 97 }); + _assert('after adding trace0', { layerCnt: 99 }); }) .then(done, done.fail); }); @@ -743,25 +743,25 @@ describe('Test choroplethmap interactions:', function() { }], {}, {}) .then(function() { expect(getLayerIds()).withContext('default *below*').toEqual([ - 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'plotly-trace-layer-a-fill', 'plotly-trace-layer-a-line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber' + 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_path_areas', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_pois', 'watername_lake_line', 'plotly-trace-layer-a-fill', 'plotly-trace-layer-a-line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber' ]); }) .then(function() { return Plotly.restyle(gd, 'below', ''); }) .then(function() { expect(getLayerIds()).withContext('*below* set to \'\'').toEqual([ - 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber', 'plotly-trace-layer-a-fill', 'plotly-trace-layer-a-line' + 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_path_areas', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_pois', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber', 'plotly-trace-layer-a-fill', 'plotly-trace-layer-a-line' ]); }) .then(function() { return Plotly.restyle(gd, 'below', 'place_label_other'); }) .then(function() { expect(getLayerIds()).withContext('*below* set to same base layer').toEqual([ - 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber', 'plotly-trace-layer-a-fill', 'plotly-trace-layer-a-line' + 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_path_areas', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_pois', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber', 'plotly-trace-layer-a-fill', 'plotly-trace-layer-a-line' ]); }) .then(function() { return Plotly.restyle(gd, 'below', null); }) .then(function() { expect(getLayerIds()).withContext('back to default *below*').toEqual([ - 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'plotly-trace-layer-a-fill', 'plotly-trace-layer-a-line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber' + 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_path_areas', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_pois', 'watername_lake_line', 'plotly-trace-layer-a-fill', 'plotly-trace-layer-a-line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber' ]); }) .then(done, done.fail); diff --git a/test/jasmine/tests/densitymap_test.js b/test/jasmine/tests/densitymap_test.js index 77366af55b2..5b09768070a 100644 --- a/test/jasmine/tests/densitymap_test.js +++ b/test/jasmine/tests/densitymap_test.js @@ -416,15 +416,15 @@ describe('Test densitymap interactions:', function() { {} ) .then(function() { - _assert('base', { layerCnt: 95 }); + _assert('base', { layerCnt: 97 }); }) .then(function() { return Plotly.deleteTraces(gd, [0]); }) .then(function() { - _assert('w/o trace0', { layerCnt: 94 }); + _assert('w/o trace0', { layerCnt: 96 }); }) .then(function() { return Plotly.addTraces(gd, [trace0]); }) .then(function() { - _assert('after adding trace0', { layerCnt: 95 }); + _assert('after adding trace0', { layerCnt: 97 }); }) .then(done, done.fail); }); @@ -446,25 +446,25 @@ describe('Test densitymap interactions:', function() { }], {}, {}) .then(function() { expect(getLayerIds()).withContext('default *below*').toEqual([ - 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'plotly-trace-layer-a-heatmap', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber' + 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'plotly-trace-layer-a-heatmap', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_path_areas', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_pois', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber' ]); }) .then(function() { return Plotly.restyle(gd, 'below', ''); }) .then(function() { expect(getLayerIds()).withContext('default *below*').toEqual([ - 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber', 'plotly-trace-layer-a-heatmap' + 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_path_areas', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_pois', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber', 'plotly-trace-layer-a-heatmap' ]); }) .then(function() { return Plotly.restyle(gd, 'below', 'place_label_other'); }) .then(function() { expect(getLayerIds()).withContext('default *below*').toEqual([ - 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber', 'plotly-trace-layer-a-heatmap' + 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_path_areas', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_pois', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber', 'plotly-trace-layer-a-heatmap' ]); }) .then(function() { return Plotly.restyle(gd, 'below', null); }) .then(function() { expect(getLayerIds()).withContext('back to default *below*').toEqual([ - 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'plotly-trace-layer-a-heatmap', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber' + 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'plotly-trace-layer-a-heatmap', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_path_areas', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_pois', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber' ]); }) .then(done, done.fail); diff --git a/test/jasmine/tests/map_test.js b/test/jasmine/tests/map_test.js index 376ac4ca0d9..3898bced3d5 100644 --- a/test/jasmine/tests/map_test.js +++ b/test/jasmine/tests/map_test.js @@ -515,16 +515,16 @@ describe('map plots', function() { expect(mapInfo.style.name).toEqual(style); } - assertLayout('Dark Matter'); + assertLayout('Dark Matter (Protomaps)'); Plotly.relayout(gd, 'map.style', 'carto-positron') .then(function() { - assertLayout('Positron'); + assertLayout('Positron (Protomaps)'); return Plotly.relayout(gd, 'map.style', 'carto-darkmatter'); }) .then(function() { - assertLayout('Dark Matter'); + assertLayout('Dark Matter (Protomaps)'); }) .then(done, done.fail); }, LONG_TIMEOUT_INTERVAL); @@ -1210,13 +1210,14 @@ describe('map plots', function() { }, LONG_TIMEOUT_INTERVAL); describe('attributions', function() { - function assertLinks(s, exp) { + // CARTO controls the markup of its own links, so only plotly-owned links have a target + function assertLinks(s, exp, checkTarget) { var elements = s[0][0].getElementsByTagName('a'); expect(elements.length).toEqual(exp.length); for(var i = 0; i < elements.length; i++) { var e = elements[i]; expect(e.href).toEqual(exp[i]); - expect(e.target).toEqual('_blank'); + if(checkTarget) expect(e.target).toEqual('_blank'); } } @@ -1225,10 +1226,10 @@ describe('map plots', function() { .then(function() { var s = d3SelectAll('.maplibregl-ctrl-attrib'); expect(s.size()).toBe(1); - expect(s.text()).toEqual('© CARTO, © OpenStreetMap contributors'); + expect(s.text()).toEqual('© OpenStreetMap contributors © CARTO'); assertLinks(s, [ - 'https://carto.com/about-carto/', - 'http://www.openstreetmap.org/about/' + 'https://www.openstreetmap.org/copyright', + 'https://carto.com/about-carto/' ]); }) .then(done, done.fail); @@ -1242,7 +1243,7 @@ describe('map plots', function() { expect(s.text()).toEqual('© OpenStreetMap contributors'); assertLinks(s, [ 'https://www.openstreetmap.org/copyright' - ]); + ], true); }) .then(done, done.fail); }); @@ -1252,10 +1253,10 @@ describe('map plots', function() { .then(function() { var s = d3SelectAll('.maplibregl-ctrl-attrib'); expect(s.size()).toBe(1); - expect(s.text()).toEqual('© CARTO, © OpenStreetMap contributors'); + expect(s.text()).toEqual('© OpenStreetMap contributors © CARTO'); assertLinks(s, [ + 'https://www.openstreetmap.org/copyright', 'https://carto.com/about-carto/', - 'http://www.openstreetmap.org/about/', ]); }) .then(done, done.fail); @@ -1327,7 +1328,7 @@ describe('map plots', function() { .then(function() { var s = d3SelectAll('.maplibregl-ctrl-attrib'); expect(s.size()).toBe(1); - expect(s.text()).toEqual([XSS + attr, '© CARTO, © OpenStreetMap contributors'].join(' | ')); + expect(s.text()).toEqual([XSS + attr, '© OpenStreetMap contributors © CARTO'].join(' | ')); expect(s.html().indexOf('')).toBe(-1); expect(s.html().indexOf('<img src=x onerror="alert(XSS);">')).not.toBe(-1); }) @@ -1660,43 +1661,43 @@ describe('test map trace/layout *below* interactions', function() { }) .then(function() { _assert('default *below*', { - trace: [94, 95, 96, 97], + trace: [96, 97, 98, 99], layout: 9 }); }) .then(function() { return Plotly.relayout(gd, 'map.layers[0].below', 'traces'); }) .then(function() { _assert('with layout layer *below:traces*', { - trace: [94, 95, 96, 97], - layout: 93 + trace: [96, 97, 98, 99], + layout: 95 }); }) .then(function() { return Plotly.relayout(gd, 'map.layers[0].below', null); }) .then(function() { _assert('back to default *below* (1)', { - trace: [93, 94, 95, 96], - layout: 97 + trace: [95, 96, 97, 98], + layout: 99 }); }) .then(function() { return Plotly.restyle(gd, 'below', ''); }) .then(function() { _assert('with trace *below:""*', { - trace: [94, 95, 96, 97], - layout: 93 + trace: [96, 97, 98, 99], + layout: 95 }); }) .then(function() { return Plotly.restyle(gd, 'below', null); }) .then(function() { _assert('back to default *below* (2)', { - trace: [93, 94, 95, 96], - layout: 97 + trace: [95, 96, 97, 98], + layout: 99 }); }) .then(function() { return Plotly.restyle(gd, 'below', 'water'); }) .then(function() { _assert('with trace *below:water*', { trace: [9, 10, 11, 12], - layout: 97 + layout: 99 }); }) .then(function() { return Plotly.relayout(gd, 'map.layers[0].below', 'water'); }) @@ -1710,21 +1711,21 @@ describe('test map trace/layout *below* interactions', function() { .then(function() { _assert('with trace *below:water* and layout layer *below:""*', { trace: [9, 10, 11, 12], - layout: 97 + layout: 99 }); }) .then(function() { return Plotly.restyle(gd, 'below', ''); }) .then(function() { _assert('with trace AND layout layer *below:water*', { - trace: [93, 94, 95, 96], - layout: 97 + trace: [95, 96, 97, 98], + layout: 99 }); }) .then(function() { return Plotly.update(gd, {below: null}, {'map.layers[0].below': null}); }) .then(function() { _assert('back to default *below* (3)', { - trace: [93, 94, 95, 96], - layout: 97 + trace: [95, 96, 97, 98], + layout: 99 }); }) .then(done, done.fail); @@ -1771,25 +1772,25 @@ describe('test map trace/layout *below* interactions', function() { }) .then(function() { _assert('base', { - scatter: [96, 97, 98, 99], + scatter: [98, 99, 100, 101], density: [13], - choropleth: [72, 73] + choropleth: [74, 75] }); }) .then(function() { return Plotly.restyle(gd, 'below', ''); }) .then(function() { _assert('all traces *below:""', { - scatter: [96, 97, 98, 99], - density: [95], - choropleth: [93, 94] + scatter: [98, 99, 100, 101], + density: [97], + choropleth: [95, 96] }); }) .then(function() { return Plotly.restyle(gd, 'below', null); }) .then(function() { _assert('back to base', { - scatter: [96, 97, 98, 99], + scatter: [98, 99, 100, 101], density: [13], - choropleth: [72, 73] + choropleth: [74, 75] }); }) .then(done, done.fail); @@ -1818,7 +1819,7 @@ describe('test map trace/layout *below* interactions', function() { } Lib.warn.calls.reset(); - getLayerIds().slice(94, -1).forEach(function(id) { + getLayerIds().slice(96, -1).forEach(function(id) { expect(id.indexOf('plotly-')).toBe(0, 'layer ' + id + ' fallback to top of map'); }); }