Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(51)

Unified Diff: third_party/WebKit/LayoutTests/fast/dom/Geolocation/resources/geolocation-mock.js

Issue 2671933003: Move Geolocation out from fast/dom. (Closed)
Patch Set: . Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/fast/dom/Geolocation/resources/geolocation-mock.js
diff --git a/third_party/WebKit/LayoutTests/fast/dom/Geolocation/resources/geolocation-mock.js b/third_party/WebKit/LayoutTests/fast/dom/Geolocation/resources/geolocation-mock.js
deleted file mode 100644
index 40b657d80afa99db488a8fc128d1449c98d2abdc..0000000000000000000000000000000000000000
--- a/third_party/WebKit/LayoutTests/fast/dom/Geolocation/resources/geolocation-mock.js
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * geolocation-mock contains a mock implementation of GeolocationService and
- * PermissionService.
- */
-
-"use strict";
-
-let geolocationServiceMock = loadMojoModules(
- 'geolocationServiceMock',
- ['device/geolocation/public/interfaces/geolocation.mojom',
- 'third_party/WebKit/public/platform/modules/permissions/permission.mojom',
- 'third_party/WebKit/public/platform/modules/permissions/permission_status.mojom',
- 'mojo/public/js/bindings',
- ]).then(mojo => {
- let [geolocation, permission, permissionStatus, bindings] =
- mojo.modules;
-
- class GeolocationServiceMock {
- constructor(interfaceProvider) {
- interfaceProvider.addInterfaceOverrideForTesting(
- geolocation.GeolocationService.name,
- handle => this.connectGeolocation_(handle));
-
- interfaceProvider.addInterfaceOverrideForTesting(
- permission.PermissionService.name,
- handle => this.connectPermission_(handle));
-
- this.interfaceProvider_ = interfaceProvider;
-
- /**
- * The next geoposition to return in response to a queryNextPosition()
- * call.
- */
- this.geoposition_ = null;
-
- /**
- * A pending request for permission awaiting a decision to be set via a
- * setGeolocationPermission call.
- *
- * @type {?Function}
- */
- this.pendingPermissionRequest_ = null;
-
- /**
- * The status to respond to permission requests with. If set to ASK, then
- * permission requests will block until setGeolocationPermission is called
- * to allow or deny permission requests.
- *
- * @type {!permissionStatus.PermissionStatus}
- */
- this.permissionStatus_ = permissionStatus.PermissionStatus.ASK;
- this.rejectPermissionConnections_ = false;
- this.rejectGeolocationConnections_ = false;
-
- this.geolocationBindingSet_ = new bindings.BindingSet(
- geolocation.GeolocationService);
- this.permissionBindingSet_ = new bindings.BindingSet(
- permission.PermissionService);
- }
-
- connectGeolocation_(handle) {
- if (this.rejectGeolocationConnections_) {
- mojo.core.close(handle);
- return;
- }
- this.geolocationBindingSet_.addBinding(this, handle);
- }
-
- connectPermission_(handle) {
- if (this.rejectPermissionConnections_) {
- mojo.core.close(handle);
- return;
- }
- this.permissionBindingSet_.addBinding(this, handle);
- }
-
- setHighAccuracy(highAccuracy) {
- // FIXME: We need to add some tests regarding "high accuracy" mode.
- // See https://bugs.webkit.org/show_bug.cgi?id=49438
- }
-
- /**
- * A mock implementation of GeolocationService.queryNextPosition(). This
- * returns the position set by a call to setGeolocationPosition() or
- * setGeolocationPositionUnavailableError().
- */
- queryNextPosition() {
- if (!this.geoposition_) {
- this.setGeolocationPositionUnavailableError(
- 'Test error: position not set before call to queryNextPosition()');
- }
- let geoposition = this.geoposition_;
- this.geoposition_ = null;
- return Promise.resolve({geoposition});
- }
-
- /**
- * Sets the position to return to the next queryNextPosition() call. If any
- * queryNextPosition() requests are outstanding, they will all receive the
- * position set by this call.
- */
- setGeolocationPosition(latitude, longitude, accuracy, altitude,
- altitudeAccuracy, heading, speed) {
- this.geoposition_ = new geolocation.Geoposition();
- this.geoposition_.latitude = latitude;
- this.geoposition_.longitude = longitude;
- this.geoposition_.accuracy = accuracy;
- this.geoposition_.altitude = altitude;
- this.geoposition_.altitude_accuracy = altitudeAccuracy;
- this.geoposition_.heading = heading;
- this.geoposition_.speed = speed;
- this.geoposition_.timestamp = new Date().getTime() / 1000;
- this.geoposition_.error_message = '';
- this.geoposition_.valid = true;
- }
-
- /**
- * Sets the error message to return to the next queryNextPosition() call. If
- * any queryNextPosition() requests are outstanding, they will all receive
- * the error set by this call.
- */
- setGeolocationPositionUnavailableError(message) {
- this.geoposition_ = new geolocation.Geoposition();
- this.geoposition_.valid = false;
- this.geoposition_.error_message = message;
- this.geoposition_.error_code =
- geolocation.Geoposition.ErrorCode.POSITION_UNAVAILABLE;
- }
-
- /**
- * Reject any connection requests for the permission service. This will
- * trigger a connection error in the client.
- */
- rejectPermissionConnections() {
- this.rejectPermissionConnections_ = true;
- }
-
- /**
- * Reject any connection requests for the geolocation service. This will
- * trigger a connection error in the client.
- */
- rejectGeolocationConnections() {
- this.rejectGeolocationConnections_ = true;
- }
-
- /**
- * A mock implementation of PermissionService.requestPermission(). This
- * returns the result set by a call to setGeolocationPermission(), waiting
- * for a call if necessary. Any permission request that is not for
- * geolocation is always denied.
- */
- requestPermission(permissionDescriptor) {
- if (permissionDescriptor.name != permission.PermissionName.GEOLOCATION)
- return Promise.resolve(permissionStatus.PermissionStatus.DENIED);
-
- return new Promise(resolve => {
- if (this.pendingPermissionRequest_)
- this.pendingPermissionRequest_(permissionStatus.PermissionStatus.ASK);
- this.pendingPermissionRequest_ = resolve;
- this.runPermissionCallback_();
- });
- }
-
- runPermissionCallback_() {
- if (this.permissionStatus_ == permissionStatus.PermissionStatus.ASK ||
- !this.pendingPermissionRequest_)
- return;
-
- this.pendingPermissionRequest_({status: this.permissionStatus_});
- this.permissionStatus_ = permissionStatus.PermissionStatus.ASK ;
- this.pendingPermissionRequest_ = null;
- }
-
- /**
- * Sets whether the next geolocation permission request should be allowed.
- */
- setGeolocationPermission(allowed) {
- this.permissionStatus_ = allowed ?
- permissionStatus.PermissionStatus.GRANTED :
- permissionStatus.PermissionStatus.DENIED;
- this.runPermissionCallback_();
- }
-
- }
- return new GeolocationServiceMock(mojo.frameInterfaces);
-});

Powered by Google App Engine
This is Rietveld 408576698