mirror of
https://gitee.com/shuto/cordova-plugin-network-information.git
synced 2025-01-19 05:52:49 +08:00
105 lines
4.0 KiB
JavaScript
105 lines
4.0 KiB
JavaScript
/*
|
|
*
|
|
* Licensed to the Apache Software Foundation (ASF) under one
|
|
* or more contributor license agreements. See the NOTICE file
|
|
* distributed with this work for additional information
|
|
* regarding copyright ownership. The ASF licenses this file
|
|
* to you under the Apache License, Version 2.0 (the
|
|
* "License"); you may not use this file except in compliance
|
|
* with the License. You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing,
|
|
* software distributed under the License is distributed on an
|
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
* KIND, either express or implied. See the License for the
|
|
* specific language governing permissions and limitations
|
|
* under the License.
|
|
*
|
|
*/
|
|
|
|
/* eslint-env jasmine */
|
|
/* global Connection */
|
|
|
|
exports.defineAutoTests = function () {
|
|
describe('Network (navigator.connection)', function () {
|
|
it('network.spec.1 should exist', function () {
|
|
expect(navigator.network && navigator.network.connection).toBeDefined();
|
|
expect(navigator.connection).toBeDefined();
|
|
});
|
|
|
|
it('network.spec.2 should be set to a valid value', function () {
|
|
var validValues = {
|
|
'unknown': 1,
|
|
'ethernet': 1,
|
|
'wifi': 1,
|
|
'2g': 1,
|
|
'cellular': 1,
|
|
'3g': 1,
|
|
'4g': 1,
|
|
'none': 1
|
|
};
|
|
expect(validValues[navigator.connection.type]).toBe(1);
|
|
});
|
|
|
|
it('network.spec.3 should have the same value in deprecated and non-deprecated apis', function () {
|
|
expect(navigator.network.connection.type).toBe(navigator.connection.type);
|
|
});
|
|
|
|
it('network.spec.4 should define constants for connection status', function () {
|
|
expect(Connection.UNKNOWN).toBe('unknown');
|
|
expect(Connection.ETHERNET).toBe('ethernet');
|
|
expect(Connection.WIFI).toBe('wifi');
|
|
expect(Connection.CELL_2G).toBe('2g');
|
|
expect(Connection.CELL_3G).toBe('3g');
|
|
expect(Connection.CELL_4G).toBe('4g');
|
|
expect(Connection.NONE).toBe('none');
|
|
expect(Connection.CELL).toBe('cellular');
|
|
});
|
|
});
|
|
};
|
|
|
|
/******************************************************************************/
|
|
/******************************************************************************/
|
|
/******************************************************************************/
|
|
|
|
exports.defineManualTests = function (contentEl, createActionButton) {
|
|
function eventOutput (s) {
|
|
var el = document.getElementById('results');
|
|
el.innerHTML = el.innerHTML + s + '<br>';
|
|
}
|
|
|
|
function printNetwork () {
|
|
eventOutput('navigator.connection.type=' + navigator.connection.type);
|
|
eventOutput('navigator.network.connection.type=' + navigator.network.connection.type);
|
|
}
|
|
|
|
function onEvent (e) {
|
|
eventOutput('Event of type: ' + e.type);
|
|
printNetwork();
|
|
}
|
|
|
|
/******************************************************************************/
|
|
|
|
var html = '<div id="info">' +
|
|
'<b>Results:</b><br>' +
|
|
'<span id="results"></span>' +
|
|
'</div><div id="connection"></div>' +
|
|
'Expected result: Status box will update with type of connection using two different methods. Both values must match.' +
|
|
' The result will be unknown, ethernet, wifi, 2g, 3g, 4g, none, or cellular. Make sure it matches what the device is connected to.' +
|
|
'</p> <div id="actions"></div>';
|
|
|
|
document.addEventListener('online', onEvent, false);
|
|
document.addEventListener('offline', onEvent, false);
|
|
contentEl.innerHTML = html;
|
|
|
|
createActionButton('Show Network Connection', function () {
|
|
printNetwork();
|
|
}, 'connection');
|
|
|
|
createActionButton('Clear Log', function () {
|
|
document.getElementById('results').innerHTML = '';
|
|
}, 'actions');
|
|
};
|