Organize tests
This commit is contained in:
2
.github/workflows/test.yml
vendored
2
.github/workflows/test.yml
vendored
@@ -157,4 +157,4 @@ jobs:
|
|||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: rendering-tests
|
name: rendering-tests
|
||||||
path: rendering/cases/**/actual.png
|
path: test/rendering/cases/**/actual.png
|
||||||
|
|||||||
2
package-lock.json
generated
2
package-lock.json
generated
@@ -46,7 +46,7 @@
|
|||||||
"jsdoc": "3.6.6",
|
"jsdoc": "3.6.6",
|
||||||
"jsdoc-plugin-typescript": "^2.0.5",
|
"jsdoc-plugin-typescript": "^2.0.5",
|
||||||
"json-stringify-safe": "^5.0.1",
|
"json-stringify-safe": "^5.0.1",
|
||||||
"karma": "^6.2.0",
|
"karma": "^6.3.2",
|
||||||
"karma-chrome-launcher": "3.1.0",
|
"karma-chrome-launcher": "3.1.0",
|
||||||
"karma-coverage-istanbul-reporter": "^3.0.0",
|
"karma-coverage-istanbul-reporter": "^3.0.0",
|
||||||
"karma-firefox-launcher": "^2.0.0",
|
"karma-firefox-launcher": "^2.0.0",
|
||||||
|
|||||||
@@ -10,12 +10,12 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"homepage": "https://openlayers.org/",
|
"homepage": "https://openlayers.org/",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"lint": "eslint tasks test rendering src/ol examples config",
|
"lint": "eslint tasks test src/ol examples config",
|
||||||
"pretest": "npm run lint && npm run typecheck",
|
"pretest": "npm run lint && npm run typecheck",
|
||||||
"test-rendering": "node rendering/test.js",
|
"test-rendering": "node test/rendering/test.js",
|
||||||
"test-spec": "npm run karma -- --single-run --log-level error",
|
"test-spec": "npm run karma -- --single-run --log-level error",
|
||||||
"test": "npm run test-spec && npm run test-rendering -- --force",
|
"test": "npm run test-spec && npm run test-rendering -- --force",
|
||||||
"karma": "karma start test/karma.config.js",
|
"karma": "karma start test/browser/karma.config.js",
|
||||||
"start": "npm run serve-examples",
|
"start": "npm run serve-examples",
|
||||||
"serve-examples": "webpack serve --config examples/webpack/config.js --mode development",
|
"serve-examples": "webpack serve --config examples/webpack/config.js --mode development",
|
||||||
"build-examples": "webpack --config examples/webpack/config.js --mode production",
|
"build-examples": "webpack --config examples/webpack/config.js --mode production",
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
"jsdoc": "3.6.6",
|
"jsdoc": "3.6.6",
|
||||||
"jsdoc-plugin-typescript": "^2.0.5",
|
"jsdoc-plugin-typescript": "^2.0.5",
|
||||||
"json-stringify-safe": "^5.0.1",
|
"json-stringify-safe": "^5.0.1",
|
||||||
"karma": "^6.2.0",
|
"karma": "^6.3.2",
|
||||||
"karma-chrome-launcher": "3.1.0",
|
"karma-chrome-launcher": "3.1.0",
|
||||||
"karma-coverage-istanbul-reporter": "^3.0.0",
|
"karma-coverage-istanbul-reporter": "^3.0.0",
|
||||||
"karma-firefox-launcher": "^2.0.0",
|
"karma-firefox-launcher": "^2.0.0",
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
import GeoJSON from '../../../src/ol/format/GeoJSON.js';
|
|
||||||
import Map from '../../../src/ol/Map.js';
|
|
||||||
import VectorLayer from '../../../src/ol/layer/Vector.js';
|
|
||||||
import VectorSource from '../../../src/ol/source/Vector.js';
|
|
||||||
import View from '../../../src/ol/View.js';
|
|
||||||
import {useGeographic} from '../../../src/ol/proj.js';
|
|
||||||
|
|
||||||
useGeographic();
|
|
||||||
|
|
||||||
new Map({
|
|
||||||
target: 'map',
|
|
||||||
view: new View({
|
|
||||||
center: [0, 0],
|
|
||||||
zoom: 1,
|
|
||||||
}),
|
|
||||||
layers: [
|
|
||||||
new VectorLayer({
|
|
||||||
extent: [-50, -45, 50, 45],
|
|
||||||
source: new VectorSource({
|
|
||||||
url: '/data/countries.json',
|
|
||||||
format: new GeoJSON(),
|
|
||||||
}),
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
});
|
|
||||||
|
|
||||||
render();
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
../../examples/data/kml/2012_Earthquakes_Mag5.kml
|
|
||||||
@@ -1,11 +1,8 @@
|
|||||||
## Included in this directory
|
## Included in this directory
|
||||||
|
|
||||||
- index.html - the web page used to run the test suite.
|
- browser - Unit/integration tests run in a browser
|
||||||
|
|
||||||
- spec - includes the OpenLayers test/spec files.
|
- rendering - Tests that make assertions about rendered map output
|
||||||
|
|
||||||
- test-extensions.js - includes OpenLayers-specific extensions to the
|
|
||||||
testing frameworks.
|
|
||||||
|
|
||||||
|
|
||||||
## Run the test suite
|
## Run the test suite
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ module.exports = function (karma) {
|
|||||||
karma.set({
|
karma.set({
|
||||||
browsers: [process.env.CI ? 'ChromeHeadless' : 'Chrome'],
|
browsers: [process.env.CI ? 'ChromeHeadless' : 'Chrome'],
|
||||||
browserDisconnectTolerance: 2,
|
browserDisconnectTolerance: 2,
|
||||||
frameworks: ['mocha'],
|
frameworks: ['webpack', 'mocha'],
|
||||||
client: {
|
client: {
|
||||||
runInParent: true,
|
runInParent: true,
|
||||||
mocha: {
|
mocha: {
|
||||||
@@ -67,7 +67,6 @@ module.exports = function (karma) {
|
|||||||
],
|
],
|
||||||
exclude: ['**/*.test.js'],
|
exclude: ['**/*.test.js'],
|
||||||
proxies: {
|
proxies: {
|
||||||
'/rendering/': '/base/rendering/',
|
|
||||||
'/spec/': '/base/spec/',
|
'/spec/': '/base/spec/',
|
||||||
},
|
},
|
||||||
preprocessors: {
|
preprocessors: {
|
||||||
@@ -76,7 +75,7 @@ module.exports = function (karma) {
|
|||||||
reporters: ['dots', 'coverage-istanbul'],
|
reporters: ['dots', 'coverage-istanbul'],
|
||||||
coverageIstanbulReporter: {
|
coverageIstanbulReporter: {
|
||||||
reports: ['text-summary', 'html'],
|
reports: ['text-summary', 'html'],
|
||||||
dir: path.resolve(__dirname, '../coverage/'),
|
dir: path.resolve(__dirname, '../../coverage/'),
|
||||||
fixWebpackSourcePaths: true,
|
fixWebpackSourcePaths: true,
|
||||||
},
|
},
|
||||||
webpack: {
|
webpack: {
|
||||||
@@ -111,19 +110,13 @@ module.exports = function (karma) {
|
|||||||
use: {
|
use: {
|
||||||
loader: path.join(
|
loader: path.join(
|
||||||
__dirname,
|
__dirname,
|
||||||
'../examples/webpack/worker-loader.js'
|
'../../examples/webpack/worker-loader.js'
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
include: [path.join(__dirname, '../src/ol/worker')],
|
include: [path.join(__dirname, '../../src/ol/worker')],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
resolve: {
|
|
||||||
alias: {
|
|
||||||
// allow imports from 'ol/module' instead of specifiying the source path
|
|
||||||
ol: path.join(__dirname, '..', 'src', 'ol'),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
webpackMiddleware: {
|
webpackMiddleware: {
|
||||||
noInfo: true,
|
noInfo: true,
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import Event from '../../../src/ol/events/Event.js';
|
import Event from '../../../../src/ol/events/Event.js';
|
||||||
import MapBrowserEvent from '../../../src/ol/MapBrowserEvent.js';
|
import MapBrowserEvent from '../../../../src/ol/MapBrowserEvent.js';
|
||||||
import {Map, View} from '../../../src/ol/index.js';
|
import {Map, View} from '../../../../src/ol/index.js';
|
||||||
import {clearUserProjection, useGeographic} from '../../../src/ol/proj.js';
|
import {clearUserProjection, useGeographic} from '../../../../src/ol/proj.js';
|
||||||
|
|
||||||
function createMap() {
|
function createMap() {
|
||||||
const size = 256;
|
const size = 256;
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
import Map from '../../../src/ol/Map.js';
|
import Map from '../../../../src/ol/Map.js';
|
||||||
import MapBrowserEventHandler from '../../../src/ol/MapBrowserEventHandler.js';
|
import MapBrowserEventHandler from '../../../../src/ol/MapBrowserEventHandler.js';
|
||||||
import OlEvent from '../../../src/ol/events/Event.js';
|
import OlEvent from '../../../../src/ol/events/Event.js';
|
||||||
import {DEVICE_PIXEL_RATIO} from '../../../src/ol/has.js';
|
import {DEVICE_PIXEL_RATIO} from '../../../../src/ol/has.js';
|
||||||
import {listen} from '../../../src/ol/events.js';
|
import {listen} from '../../../../src/ol/events.js';
|
||||||
|
|
||||||
describe('ol/MapBrowserEventHandler', function () {
|
describe('ol/MapBrowserEventHandler', function () {
|
||||||
describe('#emulateClick_', function () {
|
describe('#emulateClick_', function () {
|
||||||
@@ -10,7 +10,7 @@ import {
|
|||||||
remove,
|
remove,
|
||||||
reverseSubArray,
|
reverseSubArray,
|
||||||
stableSort,
|
stableSort,
|
||||||
} from '../../../src/ol/array.js';
|
} from '../../../../src/ol/array.js';
|
||||||
|
|
||||||
describe('ol.array', function () {
|
describe('ol.array', function () {
|
||||||
describe('binarySearch', function () {
|
describe('binarySearch', function () {
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import AssertionError from '../../../src/ol/AssertionError.js';
|
import AssertionError from '../../../../src/ol/AssertionError.js';
|
||||||
import {VERSION} from '../../../src/ol/util.js';
|
import {VERSION} from '../../../../src/ol/util.js';
|
||||||
|
|
||||||
describe('ol.AssertionError', function () {
|
describe('ol.AssertionError', function () {
|
||||||
it('generates an error', function () {
|
it('generates an error', function () {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import {assert} from '../../../src/ol/asserts.js';
|
import {assert} from '../../../../src/ol/asserts.js';
|
||||||
|
|
||||||
describe('ol.asserts', function () {
|
describe('ol.asserts', function () {
|
||||||
describe('ol.asserts.assert', function () {
|
describe('ol.asserts.assert', function () {
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
import Collection from '../../../src/ol/Collection.js';
|
import Collection from '../../../../src/ol/Collection.js';
|
||||||
import CollectionEventType from '../../../src/ol/CollectionEventType.js';
|
import CollectionEventType from '../../../../src/ol/CollectionEventType.js';
|
||||||
import {listen} from '../../../src/ol/events.js';
|
import {listen} from '../../../../src/ol/events.js';
|
||||||
|
|
||||||
describe('ol.collection', function () {
|
describe('ol.collection', function () {
|
||||||
let collection;
|
let collection;
|
||||||
@@ -5,7 +5,7 @@ import {
|
|||||||
isStringColor,
|
isStringColor,
|
||||||
normalize,
|
normalize,
|
||||||
toString,
|
toString,
|
||||||
} from '../../../src/ol/color.js';
|
} from '../../../../src/ol/color.js';
|
||||||
|
|
||||||
describe('ol.color', function () {
|
describe('ol.color', function () {
|
||||||
describe('asArray()', function () {
|
describe('asArray()', function () {
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
import Attribution from '../../../../src/ol/control/Attribution.js';
|
import Attribution from '../../../../../src/ol/control/Attribution.js';
|
||||||
import Map from '../../../../src/ol/Map.js';
|
import Map from '../../../../../src/ol/Map.js';
|
||||||
import Tile from '../../../../src/ol/Tile.js';
|
import Tile from '../../../../../src/ol/Tile.js';
|
||||||
import TileLayer from '../../../../src/ol/layer/Tile.js';
|
import TileLayer from '../../../../../src/ol/layer/Tile.js';
|
||||||
import TileSource from '../../../../src/ol/source/Tile.js';
|
import TileSource from '../../../../../src/ol/source/Tile.js';
|
||||||
import View from '../../../../src/ol/View.js';
|
import View from '../../../../../src/ol/View.js';
|
||||||
import {createXYZ} from '../../../../src/ol/tilegrid.js';
|
import {createXYZ} from '../../../../../src/ol/tilegrid.js';
|
||||||
|
|
||||||
describe('ol.control.Attribution', function () {
|
describe('ol.control.Attribution', function () {
|
||||||
let map;
|
let map;
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import Control from '../../../../src/ol/control/Control.js';
|
import Control from '../../../../../src/ol/control/Control.js';
|
||||||
import Map from '../../../../src/ol/Map.js';
|
import Map from '../../../../../src/ol/Map.js';
|
||||||
|
|
||||||
describe('ol.control.Control', function () {
|
describe('ol.control.Control', function () {
|
||||||
let map, control;
|
let map, control;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import FullScreen from '../../../../src/ol/control/FullScreen.js';
|
import FullScreen from '../../../../../src/ol/control/FullScreen.js';
|
||||||
|
|
||||||
describe('ol.control.FullScreen', function () {
|
describe('ol.control.FullScreen', function () {
|
||||||
describe('constructor', function () {
|
describe('constructor', function () {
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import EventType from '../../../../src/ol/pointer/EventType.js';
|
import EventType from '../../../../../src/ol/pointer/EventType.js';
|
||||||
import Map from '../../../../src/ol/Map.js';
|
import Map from '../../../../../src/ol/Map.js';
|
||||||
import MousePosition from '../../../../src/ol/control/MousePosition.js';
|
import MousePosition from '../../../../../src/ol/control/MousePosition.js';
|
||||||
import View from '../../../../src/ol/View.js';
|
import View from '../../../../../src/ol/View.js';
|
||||||
|
|
||||||
describe('ol/control/MousePosition', function () {
|
describe('ol/control/MousePosition', function () {
|
||||||
describe('constructor', function () {
|
describe('constructor', function () {
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import Control from '../../../../src/ol/control/Control.js';
|
import Control from '../../../../../src/ol/control/Control.js';
|
||||||
import Map from '../../../../src/ol/Map.js';
|
import Map from '../../../../../src/ol/Map.js';
|
||||||
import OverviewMap from '../../../../src/ol/control/OverviewMap.js';
|
import OverviewMap from '../../../../../src/ol/control/OverviewMap.js';
|
||||||
import View from '../../../../src/ol/View.js';
|
import View from '../../../../../src/ol/View.js';
|
||||||
|
|
||||||
describe('ol.control.OverviewMap', function () {
|
describe('ol.control.OverviewMap', function () {
|
||||||
let map, target;
|
let map, target;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import Rotate from '../../../../src/ol/control/Rotate.js';
|
import Rotate from '../../../../../src/ol/control/Rotate.js';
|
||||||
|
|
||||||
describe('ol.control.Rotate', function () {
|
describe('ol.control.Rotate', function () {
|
||||||
describe('constructor', function () {
|
describe('constructor', function () {
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
import Map from '../../../../src/ol/Map.js';
|
import Map from '../../../../../src/ol/Map.js';
|
||||||
import Projection from '../../../../src/ol/proj/Projection.js';
|
import Projection from '../../../../../src/ol/proj/Projection.js';
|
||||||
import ScaleLine from '../../../../src/ol/control/ScaleLine.js';
|
import ScaleLine from '../../../../../src/ol/control/ScaleLine.js';
|
||||||
import View from '../../../../src/ol/View.js';
|
import View from '../../../../../src/ol/View.js';
|
||||||
import proj4 from 'proj4';
|
import proj4 from 'proj4';
|
||||||
import {
|
import {
|
||||||
addCommon,
|
addCommon,
|
||||||
clearAllProjections,
|
clearAllProjections,
|
||||||
fromLonLat,
|
fromLonLat,
|
||||||
} from '../../../../src/ol/proj.js';
|
} from '../../../../../src/ol/proj.js';
|
||||||
import {register} from '../../../../src/ol/proj/proj4.js';
|
import {register} from '../../../../../src/ol/proj/proj4.js';
|
||||||
|
|
||||||
describe('ol.control.ScaleLine', function () {
|
describe('ol.control.ScaleLine', function () {
|
||||||
let map;
|
let map;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import Zoom from '../../../../src/ol/control/Zoom.js';
|
import Zoom from '../../../../../src/ol/control/Zoom.js';
|
||||||
|
|
||||||
describe('ol.control.Zoom', function () {
|
describe('ol.control.Zoom', function () {
|
||||||
describe('constructor', function () {
|
describe('constructor', function () {
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
import Event from '../../../../src/ol/events/Event.js';
|
import Event from '../../../../../src/ol/events/Event.js';
|
||||||
import EventTarget from '../../../../src/ol/events/Target.js';
|
import EventTarget from '../../../../../src/ol/events/Target.js';
|
||||||
import Map from '../../../../src/ol/Map.js';
|
import Map from '../../../../../src/ol/Map.js';
|
||||||
import View from '../../../../src/ol/View.js';
|
import View from '../../../../../src/ol/View.js';
|
||||||
import ZoomSlider from '../../../../src/ol/control/ZoomSlider.js';
|
import ZoomSlider from '../../../../../src/ol/control/ZoomSlider.js';
|
||||||
|
|
||||||
describe('ol.control.ZoomSlider', function () {
|
describe('ol.control.ZoomSlider', function () {
|
||||||
let map, target, zoomslider;
|
let map, target, zoomslider;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import ZoomToExtent from '../../../../src/ol/control/ZoomToExtent.js';
|
import ZoomToExtent from '../../../../../src/ol/control/ZoomToExtent.js';
|
||||||
|
|
||||||
describe('ol.control.ZoomToExtent', function () {
|
describe('ol.control.ZoomToExtent', function () {
|
||||||
describe('constructor', function () {
|
describe('constructor', function () {
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import Circle from '../../../src/ol/geom/Circle.js';
|
import Circle from '../../../../src/ol/geom/Circle.js';
|
||||||
import Projection from '../../../src/ol/proj/Projection.js';
|
import Projection from '../../../../src/ol/proj/Projection.js';
|
||||||
import {
|
import {
|
||||||
add as addCoordinate,
|
add as addCoordinate,
|
||||||
closestOnCircle,
|
closestOnCircle,
|
||||||
@@ -13,8 +13,8 @@ import {
|
|||||||
toStringHDMS,
|
toStringHDMS,
|
||||||
toStringXY,
|
toStringXY,
|
||||||
wrapX,
|
wrapX,
|
||||||
} from '../../../src/ol/coordinate.js';
|
} from '../../../../src/ol/coordinate.js';
|
||||||
import {get} from '../../../src/ol/proj.js';
|
import {get} from '../../../../src/ol/proj.js';
|
||||||
|
|
||||||
describe('ol.coordinate', function () {
|
describe('ol.coordinate', function () {
|
||||||
describe('#add', function () {
|
describe('#add', function () {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import {getFontParameters} from '../../../src/ol/css.js';
|
import {getFontParameters} from '../../../../src/ol/css.js';
|
||||||
|
|
||||||
describe('ol.css', function () {
|
describe('ol.css', function () {
|
||||||
describe('getFontParameters()', function () {
|
describe('getFontParameters()', function () {
|
||||||
|
Before Width: | Height: | Size: 478 B After Width: | Height: | Size: 478 B |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
@@ -1,4 +1,4 @@
|
|||||||
import Disposable from '../../../src/ol/Disposable.js';
|
import Disposable from '../../../../src/ol/Disposable.js';
|
||||||
|
|
||||||
describe('ol.Disposable', function () {
|
describe('ol.Disposable', function () {
|
||||||
describe('constructor', function () {
|
describe('constructor', function () {
|
||||||
@@ -3,7 +3,7 @@ import {
|
|||||||
outerHeight,
|
outerHeight,
|
||||||
outerWidth,
|
outerWidth,
|
||||||
replaceChildren,
|
replaceChildren,
|
||||||
} from '../../../../src/ol/dom.js';
|
} from '../../../../../src/ol/dom.js';
|
||||||
|
|
||||||
describe('ol.dom', function () {
|
describe('ol.dom', function () {
|
||||||
describe('ol.dom.createCanvasContext2D', function () {
|
describe('ol.dom.createCanvasContext2D', function () {
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import EventTarget from '../../../src/ol/events/Target.js';
|
import EventTarget from '../../../../src/ol/events/Target.js';
|
||||||
import {listen, listenOnce, unlistenByKey} from '../../../src/ol/events.js';
|
import {listen, listenOnce, unlistenByKey} from '../../../../src/ol/events.js';
|
||||||
|
|
||||||
describe('ol.events', function () {
|
describe('ol.events', function () {
|
||||||
let add, target;
|
let add, target;
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import Event, {
|
import Event, {
|
||||||
preventDefault,
|
preventDefault,
|
||||||
stopPropagation,
|
stopPropagation,
|
||||||
} from '../../../../src/ol/events/Event.js';
|
} from '../../../../../src/ol/events/Event.js';
|
||||||
|
|
||||||
describe('ol.events.Event', function () {
|
describe('ol.events.Event', function () {
|
||||||
describe('constructor', function () {
|
describe('constructor', function () {
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import Disposable from '../../../../src/ol/Disposable.js';
|
import Disposable from '../../../../../src/ol/Disposable.js';
|
||||||
import Event from '../../../../src/ol/events/Event.js';
|
import Event from '../../../../../src/ol/events/Event.js';
|
||||||
import EventTarget from '../../../../src/ol/events/Target.js';
|
import EventTarget from '../../../../../src/ol/events/Target.js';
|
||||||
import {listen} from '../../../../src/ol/events.js';
|
import {listen} from '../../../../../src/ol/events.js';
|
||||||
|
|
||||||
describe('ol.events.EventTarget', function () {
|
describe('ol.events.EventTarget', function () {
|
||||||
let called, events, eventTarget, spy1, spy2, spy3;
|
let called, events, eventTarget, spy1, spy2, spy3;
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
import * as _ol_extent_ from '../../../src/ol/extent.js';
|
import * as _ol_extent_ from '../../../../src/ol/extent.js';
|
||||||
import {get, getTransform} from '../../../src/ol/proj.js';
|
import {get, getTransform} from '../../../../src/ol/proj.js';
|
||||||
import {register} from '../../../src/ol/proj/proj4.js';
|
import {register} from '../../../../src/ol/proj/proj4.js';
|
||||||
|
|
||||||
describe('ol.extent', function () {
|
describe('ol.extent', function () {
|
||||||
describe('buffer', function () {
|
describe('buffer', function () {
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import Feature, {createStyleFunction} from '../../../src/ol/Feature.js';
|
import Feature, {createStyleFunction} from '../../../../src/ol/Feature.js';
|
||||||
import Point from '../../../src/ol/geom/Point.js';
|
import Point from '../../../../src/ol/geom/Point.js';
|
||||||
import Style from '../../../src/ol/style/Style.js';
|
import Style from '../../../../src/ol/style/Style.js';
|
||||||
import {isEmpty} from '../../../src/ol/obj.js';
|
import {isEmpty} from '../../../../src/ol/obj.js';
|
||||||
|
|
||||||
describe('ol.Feature', function () {
|
describe('ol.Feature', function () {
|
||||||
describe('constructor', function () {
|
describe('constructor', function () {
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
import GeoJSON from '../../../src/ol/format/GeoJSON.js';
|
import GeoJSON from '../../../../src/ol/format/GeoJSON.js';
|
||||||
import VectorSource from '../../../src/ol/source/Vector.js';
|
import VectorSource from '../../../../src/ol/source/Vector.js';
|
||||||
import {xhr} from '../../../src/ol/featureloader.js';
|
import {xhr} from '../../../../src/ol/featureloader.js';
|
||||||
|
|
||||||
describe('ol.featureloader', function () {
|
describe('ol.featureloader', function () {
|
||||||
describe('ol.featureloader.xhr', function () {
|
describe('ol.featureloader.xhr', function () {
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
import EsriJSON from '../../../../src/ol/format/EsriJSON.js';
|
import EsriJSON from '../../../../../src/ol/format/EsriJSON.js';
|
||||||
import Feature from '../../../../src/ol/Feature.js';
|
import Feature from '../../../../../src/ol/Feature.js';
|
||||||
import LineString from '../../../../src/ol/geom/LineString.js';
|
import LineString from '../../../../../src/ol/geom/LineString.js';
|
||||||
import LinearRing from '../../../../src/ol/geom/LinearRing.js';
|
import LinearRing from '../../../../../src/ol/geom/LinearRing.js';
|
||||||
import MultiLineString from '../../../../src/ol/geom/MultiLineString.js';
|
import MultiLineString from '../../../../../src/ol/geom/MultiLineString.js';
|
||||||
import MultiPoint from '../../../../src/ol/geom/MultiPoint.js';
|
import MultiPoint from '../../../../../src/ol/geom/MultiPoint.js';
|
||||||
import MultiPolygon from '../../../../src/ol/geom/MultiPolygon.js';
|
import MultiPolygon from '../../../../../src/ol/geom/MultiPolygon.js';
|
||||||
import Point from '../../../../src/ol/geom/Point.js';
|
import Point from '../../../../../src/ol/geom/Point.js';
|
||||||
import Polygon from '../../../../src/ol/geom/Polygon.js';
|
import Polygon from '../../../../../src/ol/geom/Polygon.js';
|
||||||
import {equals} from '../../../../src/ol/extent.js';
|
import {equals} from '../../../../../src/ol/extent.js';
|
||||||
import {get as getProjection, transform} from '../../../../src/ol/proj.js';
|
import {get as getProjection, transform} from '../../../../../src/ol/proj.js';
|
||||||
|
|
||||||
describe('ol.format.EsriJSON', function () {
|
describe('ol.format.EsriJSON', function () {
|
||||||
let format;
|
let format;
|
||||||
@@ -1,20 +1,20 @@
|
|||||||
import Circle from '../../../../src/ol/geom/Circle.js';
|
import Circle from '../../../../../src/ol/geom/Circle.js';
|
||||||
import Feature from '../../../../src/ol/Feature.js';
|
import Feature from '../../../../../src/ol/Feature.js';
|
||||||
import GeoJSON from '../../../../src/ol/format/GeoJSON.js';
|
import GeoJSON from '../../../../../src/ol/format/GeoJSON.js';
|
||||||
import GeometryCollection from '../../../../src/ol/geom/GeometryCollection.js';
|
import GeometryCollection from '../../../../../src/ol/geom/GeometryCollection.js';
|
||||||
import LineString from '../../../../src/ol/geom/LineString.js';
|
import LineString from '../../../../../src/ol/geom/LineString.js';
|
||||||
import LinearRing from '../../../../src/ol/geom/LinearRing.js';
|
import LinearRing from '../../../../../src/ol/geom/LinearRing.js';
|
||||||
import MultiPolygon from '../../../../src/ol/geom/MultiPolygon.js';
|
import MultiPolygon from '../../../../../src/ol/geom/MultiPolygon.js';
|
||||||
import Point from '../../../../src/ol/geom/Point.js';
|
import Point from '../../../../../src/ol/geom/Point.js';
|
||||||
import Polygon from '../../../../src/ol/geom/Polygon.js';
|
import Polygon from '../../../../../src/ol/geom/Polygon.js';
|
||||||
import {
|
import {
|
||||||
Projection,
|
Projection,
|
||||||
fromLonLat,
|
fromLonLat,
|
||||||
get as getProjection,
|
get as getProjection,
|
||||||
toLonLat,
|
toLonLat,
|
||||||
transform,
|
transform,
|
||||||
} from '../../../../src/ol/proj.js';
|
} from '../../../../../src/ol/proj.js';
|
||||||
import {equals} from '../../../../src/ol/extent.js';
|
import {equals} from '../../../../../src/ol/extent.js';
|
||||||
|
|
||||||
describe('ol.format.GeoJSON', function () {
|
describe('ol.format.GeoJSON', function () {
|
||||||
let format;
|
let format;
|
||||||
@@ -1,16 +1,16 @@
|
|||||||
import Feature from '../../../../src/ol/Feature.js';
|
import Feature from '../../../../../src/ol/Feature.js';
|
||||||
import GML from '../../../../src/ol/format/GML.js';
|
import GML from '../../../../../src/ol/format/GML.js';
|
||||||
import GML2 from '../../../../src/ol/format/GML2.js';
|
import GML2 from '../../../../../src/ol/format/GML2.js';
|
||||||
import GML32 from '../../../../src/ol/format/GML32.js';
|
import GML32 from '../../../../../src/ol/format/GML32.js';
|
||||||
import LineString from '../../../../src/ol/geom/LineString.js';
|
import LineString from '../../../../../src/ol/geom/LineString.js';
|
||||||
import LinearRing from '../../../../src/ol/geom/LinearRing.js';
|
import LinearRing from '../../../../../src/ol/geom/LinearRing.js';
|
||||||
import MultiLineString from '../../../../src/ol/geom/MultiLineString.js';
|
import MultiLineString from '../../../../../src/ol/geom/MultiLineString.js';
|
||||||
import MultiPoint from '../../../../src/ol/geom/MultiPoint.js';
|
import MultiPoint from '../../../../../src/ol/geom/MultiPoint.js';
|
||||||
import MultiPolygon from '../../../../src/ol/geom/MultiPolygon.js';
|
import MultiPolygon from '../../../../../src/ol/geom/MultiPolygon.js';
|
||||||
import Point from '../../../../src/ol/geom/Point.js';
|
import Point from '../../../../../src/ol/geom/Point.js';
|
||||||
import Polygon from '../../../../src/ol/geom/Polygon.js';
|
import Polygon from '../../../../../src/ol/geom/Polygon.js';
|
||||||
import {createElementNS, parse} from '../../../../src/ol/xml.js';
|
import {createElementNS, parse} from '../../../../../src/ol/xml.js';
|
||||||
import {transform} from '../../../../src/ol/proj.js';
|
import {transform} from '../../../../../src/ol/proj.js';
|
||||||
|
|
||||||
const readGeometry = function (format, text, opt_options) {
|
const readGeometry = function (format, text, opt_options) {
|
||||||
const doc = parse(text);
|
const doc = parse(text);
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
import Feature from '../../../../src/ol/Feature.js';
|
import Feature from '../../../../../src/ol/Feature.js';
|
||||||
import GPX from '../../../../src/ol/format/GPX.js';
|
import GPX from '../../../../../src/ol/format/GPX.js';
|
||||||
import LineString from '../../../../src/ol/geom/LineString.js';
|
import LineString from '../../../../../src/ol/geom/LineString.js';
|
||||||
import MultiLineString from '../../../../src/ol/geom/MultiLineString.js';
|
import MultiLineString from '../../../../../src/ol/geom/MultiLineString.js';
|
||||||
import Point from '../../../../src/ol/geom/Point.js';
|
import Point from '../../../../../src/ol/geom/Point.js';
|
||||||
import Polygon from '../../../../src/ol/geom/Polygon.js';
|
import Polygon from '../../../../../src/ol/geom/Polygon.js';
|
||||||
import {get as getProjection, transform} from '../../../../src/ol/proj.js';
|
import {get as getProjection, transform} from '../../../../../src/ol/proj.js';
|
||||||
import {parse} from '../../../../src/ol/xml.js';
|
import {parse} from '../../../../../src/ol/xml.js';
|
||||||
|
|
||||||
describe('ol.format.GPX', function () {
|
describe('ol.format.GPX', function () {
|
||||||
let format;
|
let format;
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
import Feature from '../../../../src/ol/Feature.js';
|
import Feature from '../../../../../src/ol/Feature.js';
|
||||||
import IGC from '../../../../src/ol/format/IGC.js';
|
import IGC from '../../../../../src/ol/format/IGC.js';
|
||||||
import {get as getProjection, transform} from '../../../../src/ol/proj.js';
|
import {get as getProjection, transform} from '../../../../../src/ol/proj.js';
|
||||||
|
|
||||||
describe('ol.format.IGC', function () {
|
describe('ol.format.IGC', function () {
|
||||||
let format;
|
let format;
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import IIIFInfo from '../../../../src/ol/format/IIIFInfo.js';
|
import IIIFInfo from '../../../../../src/ol/format/IIIFInfo.js';
|
||||||
import {Versions} from '../../../../src/ol/format/IIIFInfo.js';
|
import {Versions} from '../../../../../src/ol/format/IIIFInfo.js';
|
||||||
|
|
||||||
describe('ol.format.IIIFInfo', function () {
|
describe('ol.format.IIIFInfo', function () {
|
||||||
const iiifInfo = new IIIFInfo();
|
const iiifInfo = new IIIFInfo();
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
import CircleStyle from '../../../../src/ol/style/Circle.js';
|
import CircleStyle from '../../../../../src/ol/style/Circle.js';
|
||||||
import Feature from '../../../../src/ol/Feature.js';
|
import Feature from '../../../../../src/ol/Feature.js';
|
||||||
import Fill from '../../../../src/ol/style/Fill.js';
|
import Fill from '../../../../../src/ol/style/Fill.js';
|
||||||
import GeoJSON from '../../../../src/ol/format/GeoJSON.js';
|
import GeoJSON from '../../../../../src/ol/format/GeoJSON.js';
|
||||||
import GeometryCollection from '../../../../src/ol/geom/GeometryCollection.js';
|
import GeometryCollection from '../../../../../src/ol/geom/GeometryCollection.js';
|
||||||
import Icon from '../../../../src/ol/style/Icon.js';
|
import Icon from '../../../../../src/ol/style/Icon.js';
|
||||||
import IconAnchorUnits from '../../../../src/ol/style/IconAnchorUnits.js';
|
import IconAnchorUnits from '../../../../../src/ol/style/IconAnchorUnits.js';
|
||||||
import IconOrigin from '../../../../src/ol/style/IconOrigin.js';
|
import IconOrigin from '../../../../../src/ol/style/IconOrigin.js';
|
||||||
import KML, {
|
import KML, {
|
||||||
getDefaultFillStyle,
|
getDefaultFillStyle,
|
||||||
getDefaultImageStyle,
|
getDefaultImageStyle,
|
||||||
@@ -14,27 +14,27 @@ import KML, {
|
|||||||
getDefaultStyleArray,
|
getDefaultStyleArray,
|
||||||
getDefaultTextStyle,
|
getDefaultTextStyle,
|
||||||
readFlatCoordinates,
|
readFlatCoordinates,
|
||||||
} from '../../../../src/ol/format/KML.js';
|
} from '../../../../../src/ol/format/KML.js';
|
||||||
import LineString from '../../../../src/ol/geom/LineString.js';
|
import LineString from '../../../../../src/ol/geom/LineString.js';
|
||||||
import LinearRing from '../../../../src/ol/geom/LinearRing.js';
|
import LinearRing from '../../../../../src/ol/geom/LinearRing.js';
|
||||||
import MultiLineString from '../../../../src/ol/geom/MultiLineString.js';
|
import MultiLineString from '../../../../../src/ol/geom/MultiLineString.js';
|
||||||
import MultiPoint from '../../../../src/ol/geom/MultiPoint.js';
|
import MultiPoint from '../../../../../src/ol/geom/MultiPoint.js';
|
||||||
import MultiPolygon from '../../../../src/ol/geom/MultiPolygon.js';
|
import MultiPolygon from '../../../../../src/ol/geom/MultiPolygon.js';
|
||||||
import Point from '../../../../src/ol/geom/Point.js';
|
import Point from '../../../../../src/ol/geom/Point.js';
|
||||||
import Polygon from '../../../../src/ol/geom/Polygon.js';
|
import Polygon from '../../../../../src/ol/geom/Polygon.js';
|
||||||
import Projection from '../../../../src/ol/proj/Projection.js';
|
import Projection from '../../../../../src/ol/proj/Projection.js';
|
||||||
import Stroke from '../../../../src/ol/style/Stroke.js';
|
import Stroke from '../../../../../src/ol/style/Stroke.js';
|
||||||
import Style from '../../../../src/ol/style/Style.js';
|
import Style from '../../../../../src/ol/style/Style.js';
|
||||||
import Text from '../../../../src/ol/style/Text.js';
|
import Text from '../../../../../src/ol/style/Text.js';
|
||||||
import {
|
import {
|
||||||
addCoordinateTransforms,
|
addCoordinateTransforms,
|
||||||
addProjection,
|
addProjection,
|
||||||
get as getProjection,
|
get as getProjection,
|
||||||
transform,
|
transform,
|
||||||
} from '../../../../src/ol/proj.js';
|
} from '../../../../../src/ol/proj.js';
|
||||||
import {find} from '../../../../src/ol/array.js';
|
import {find} from '../../../../../src/ol/array.js';
|
||||||
import {parse} from '../../../../src/ol/xml.js';
|
import {parse} from '../../../../../src/ol/xml.js';
|
||||||
import {remove as removeTransform} from '../../../../src/ol/proj/transforms.js';
|
import {remove as removeTransform} from '../../../../../src/ol/proj/transforms.js';
|
||||||
|
|
||||||
describe('ol.format.KML', function () {
|
describe('ol.format.KML', function () {
|
||||||
let format;
|
let format;
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
import Feature from '../../../../src/ol/Feature.js';
|
import Feature from '../../../../../src/ol/Feature.js';
|
||||||
import MVT from '../../../../src/ol/format/MVT.js';
|
import MVT from '../../../../../src/ol/format/MVT.js';
|
||||||
import MultiPolygon from '../../../../src/ol/geom/MultiPolygon.js';
|
import MultiPolygon from '../../../../../src/ol/geom/MultiPolygon.js';
|
||||||
import Point from '../../../../src/ol/geom/Point.js';
|
import Point from '../../../../../src/ol/geom/Point.js';
|
||||||
import Polygon from '../../../../src/ol/geom/Polygon.js';
|
import Polygon from '../../../../../src/ol/geom/Polygon.js';
|
||||||
import RenderFeature from '../../../../src/ol/render/Feature.js';
|
import RenderFeature from '../../../../../src/ol/render/Feature.js';
|
||||||
|
|
||||||
where('ArrayBuffer.isView').describe('ol.format.MVT', function () {
|
where('ArrayBuffer.isView').describe('ol.format.MVT', function () {
|
||||||
let data;
|
let data;
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
import Feature from '../../../../src/ol/Feature.js';
|
import Feature from '../../../../../src/ol/Feature.js';
|
||||||
import LineString from '../../../../src/ol/geom/LineString.js';
|
import LineString from '../../../../../src/ol/geom/LineString.js';
|
||||||
import OSMXML from '../../../../src/ol/format/OSMXML.js';
|
import OSMXML from '../../../../../src/ol/format/OSMXML.js';
|
||||||
import Point from '../../../../src/ol/geom/Point.js';
|
import Point from '../../../../../src/ol/geom/Point.js';
|
||||||
import {get as getProjection, transform} from '../../../../src/ol/proj.js';
|
import {get as getProjection, transform} from '../../../../../src/ol/proj.js';
|
||||||
|
|
||||||
describe('ol.format.OSMXML', function () {
|
describe('ol.format.OSMXML', function () {
|
||||||
let format;
|
let format;
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import OWS from '../../../../src/ol/format/OWS.js';
|
import OWS from '../../../../../src/ol/format/OWS.js';
|
||||||
import {parse} from '../../../../src/ol/xml.js';
|
import {parse} from '../../../../../src/ol/xml.js';
|
||||||
|
|
||||||
describe('ol.format.OWS 1.1', function () {
|
describe('ol.format.OWS 1.1', function () {
|
||||||
const parser = new OWS();
|
const parser = new OWS();
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import Feature from '../../../../src/ol/Feature.js';
|
import Feature from '../../../../../src/ol/Feature.js';
|
||||||
import LineString from '../../../../src/ol/geom/LineString.js';
|
import LineString from '../../../../../src/ol/geom/LineString.js';
|
||||||
import Polyline, * as polyline from '../../../../src/ol/format/Polyline.js';
|
import Polyline, * as polyline from '../../../../../src/ol/format/Polyline.js';
|
||||||
import {get as getProjection, transform} from '../../../../src/ol/proj.js';
|
import {get as getProjection, transform} from '../../../../../src/ol/proj.js';
|
||||||
|
|
||||||
describe('ol.format.Polyline', function () {
|
describe('ol.format.Polyline', function () {
|
||||||
let format;
|
let format;
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
import Feature from '../../../../src/ol/Feature.js';
|
import Feature from '../../../../../src/ol/Feature.js';
|
||||||
import FeatureFormat from '../../../../src/ol/format/Feature.js';
|
import FeatureFormat from '../../../../../src/ol/format/Feature.js';
|
||||||
import MultiPolygon from '../../../../src/ol/geom/MultiPolygon.js';
|
import MultiPolygon from '../../../../../src/ol/geom/MultiPolygon.js';
|
||||||
import Polygon from '../../../../src/ol/geom/Polygon.js';
|
import Polygon from '../../../../../src/ol/geom/Polygon.js';
|
||||||
import TopoJSON from '../../../../src/ol/format/TopoJSON.js';
|
import TopoJSON from '../../../../../src/ol/format/TopoJSON.js';
|
||||||
import {transform} from '../../../../src/ol/proj.js';
|
import {transform} from '../../../../../src/ol/proj.js';
|
||||||
|
|
||||||
const aruba = {
|
const aruba = {
|
||||||
type: 'Topology',
|
type: 'Topology',
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
import Feature from '../../../../src/ol/Feature.js';
|
import Feature from '../../../../../src/ol/Feature.js';
|
||||||
import GML2 from '../../../../src/ol/format/GML2.js';
|
import GML2 from '../../../../../src/ol/format/GML2.js';
|
||||||
import GML32 from '../../../../src/ol/format/GML32.js';
|
import GML32 from '../../../../../src/ol/format/GML32.js';
|
||||||
import LineString from '../../../../src/ol/geom/LineString.js';
|
import LineString from '../../../../../src/ol/geom/LineString.js';
|
||||||
import MultiLineString from '../../../../src/ol/geom/MultiLineString.js';
|
import MultiLineString from '../../../../../src/ol/geom/MultiLineString.js';
|
||||||
import MultiPoint from '../../../../src/ol/geom/MultiPoint.js';
|
import MultiPoint from '../../../../../src/ol/geom/MultiPoint.js';
|
||||||
import MultiPolygon from '../../../../src/ol/geom/MultiPolygon.js';
|
import MultiPolygon from '../../../../../src/ol/geom/MultiPolygon.js';
|
||||||
import Polygon from '../../../../src/ol/geom/Polygon.js';
|
import Polygon from '../../../../../src/ol/geom/Polygon.js';
|
||||||
import WFS, {writeFilter} from '../../../../src/ol/format/WFS.js';
|
import WFS, {writeFilter} from '../../../../../src/ol/format/WFS.js';
|
||||||
import {
|
import {
|
||||||
addCommon,
|
addCommon,
|
||||||
clearAllProjections,
|
clearAllProjections,
|
||||||
transform,
|
transform,
|
||||||
} from '../../../../src/ol/proj.js';
|
} from '../../../../../src/ol/proj.js';
|
||||||
import {
|
import {
|
||||||
and as andFilter,
|
and as andFilter,
|
||||||
bbox as bboxFilter,
|
bbox as bboxFilter,
|
||||||
@@ -32,9 +32,9 @@ import {
|
|||||||
or as orFilter,
|
or as orFilter,
|
||||||
resourceId as resourceIdFilter,
|
resourceId as resourceIdFilter,
|
||||||
within as withinFilter,
|
within as withinFilter,
|
||||||
} from '../../../../src/ol/format/filter.js';
|
} from '../../../../../src/ol/format/filter.js';
|
||||||
import {parse} from '../../../../src/ol/xml.js';
|
import {parse} from '../../../../../src/ol/xml.js';
|
||||||
import {register} from '../../../../src/ol/proj/proj4.js';
|
import {register} from '../../../../../src/ol/proj/proj4.js';
|
||||||
|
|
||||||
describe('ol.format.WFS', function () {
|
describe('ol.format.WFS', function () {
|
||||||
describe('featureType', function () {
|
describe('featureType', function () {
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
import Feature from '../../../../src/ol/Feature.js';
|
import Feature from '../../../../../src/ol/Feature.js';
|
||||||
import GeometryCollection from '../../../../src/ol/geom/GeometryCollection.js';
|
import GeometryCollection from '../../../../../src/ol/geom/GeometryCollection.js';
|
||||||
import Point from '../../../../src/ol/geom/Point.js';
|
import Point from '../../../../../src/ol/geom/Point.js';
|
||||||
import SimpleGeometry from '../../../../src/ol/geom/SimpleGeometry.js';
|
import SimpleGeometry from '../../../../../src/ol/geom/SimpleGeometry.js';
|
||||||
import WKB from '../../../../src/ol/format/WKB.js';
|
import WKB from '../../../../../src/ol/format/WKB.js';
|
||||||
import WKT from '../../../../src/ol/format/WKT.js';
|
import WKT from '../../../../../src/ol/format/WKT.js';
|
||||||
import {transform} from '../../../../src/ol/proj.js';
|
import {transform} from '../../../../../src/ol/proj.js';
|
||||||
|
|
||||||
const patterns = [
|
const patterns = [
|
||||||
[
|
[
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import Feature from '../../../../src/ol/Feature.js';
|
import Feature from '../../../../../src/ol/Feature.js';
|
||||||
import Point from '../../../../src/ol/geom/Point.js';
|
import Point from '../../../../../src/ol/geom/Point.js';
|
||||||
import WKT from '../../../../src/ol/format/WKT.js';
|
import WKT from '../../../../../src/ol/format/WKT.js';
|
||||||
import {transform} from '../../../../src/ol/proj.js';
|
import {transform} from '../../../../../src/ol/proj.js';
|
||||||
|
|
||||||
describe('ol.format.WKT', function () {
|
describe('ol.format.WKT', function () {
|
||||||
let format = new WKT();
|
let format = new WKT();
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user