Code review comments and upstream merge conflicts

Incorporated code review comments in components/net/http_loader.rs
Resolved merge conflicts in cargo.lock file. Updated ReferrerPolicy in
lib.rs
This commit is contained in:
Raghav 2016-11-04 11:18:22 -04:00
commit 26dac98546
340 changed files with 9134 additions and 452 deletions

View file

@ -20,9 +20,10 @@ use hyper::server::{Handler, Listening, Server};
use hyper::server::{Request as HyperRequest, Response as HyperResponse};
use hyper::status::StatusCode;
use hyper::uri::RequestUri;
use msg::constellation_msg::{ReferrerPolicy, TEST_PIPELINE_ID};
use msg::constellation_msg::TEST_PIPELINE_ID;
use net::fetch::cors_cache::CORSCache;
use net::fetch::methods::{fetch, fetch_with_cors_cache};
use net_traits::ReferrerPolicy;
use net_traits::request::{Origin, RedirectMode, Referrer, Request, RequestMode};
use net_traits::response::{CacheState, Response, ResponseBody, ResponseType};
use std::fs::File;

View file

@ -18,7 +18,7 @@ use hyper::http::RawStatus;
use hyper::method::Method;
use hyper::mime::{Mime, SubLevel, TopLevel};
use hyper::status::StatusCode;
use msg::constellation_msg::{PipelineId, ReferrerPolicy, TEST_PIPELINE_ID};
use msg::constellation_msg::{PipelineId, TEST_PIPELINE_ID};
use net::cookie::Cookie;
use net::cookie_storage::CookieStorage;
use net::hsts::HstsEntry;
@ -26,7 +26,7 @@ use net::http_loader::{HttpRequest, HttpRequestFactory, HttpState, LoadError, UI
use net::http_loader::{HttpResponse, LoadErrorType};
use net::resource_thread::{AuthCacheEntry, CancellationListener};
use net_traits::{CookieSource, IncludeSubdomains, LoadContext, LoadData};
use net_traits::{CustomResponse, LoadOrigin, Metadata};
use net_traits::{CustomResponse, LoadOrigin, Metadata, ReferrerPolicy};
use std::borrow::Cow;
use std::io::{self, Cursor, Read, Write};
use std::sync::{Arc, RwLock, mpsc};

View file

@ -3,10 +3,10 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use ipc_channel::ipc;
use msg::constellation_msg::{PipelineId, ReferrerPolicy};
use msg::constellation_msg::PipelineId;
use net::resource_thread::new_core_resource_thread;
use net_traits::{CoreResourceMsg, LoadConsumer, LoadContext, LoadData};
use net_traits::{LoadOrigin, NetworkError, ProgressMsg};
use net_traits::{LoadOrigin, NetworkError, ProgressMsg, ReferrerPolicy};
use net_traits::hosts::{host_replacement, parse_hostsfile};
use profile_traits::time::ProfilerChan;
use std::borrow::ToOwned;

View file

@ -1,2 +1 @@
mozprocess >= 0.19

View file

@ -130,6 +130,7 @@ class FirefoxBrowser(Browser):
"marionette.defaultPrefs.port": self.marionette_port,
"dom.disable_open_during_load": False,
"network.dns.localDomains": ",".join(hostnames),
"network.proxy.type": 0,
"places.history.enabled": False})
if self.e10s:
self.profile.set_preferences({"browser.tabs.remote.autostart": True})

View file

@ -3,11 +3,12 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
var props = {output:%(output)d};
var start_loc = document.createElement('a');
start_loc.href = location.href;
setup(props);
add_completion_callback(function (tests, harness_status) {
var id = location.pathname + location.search + location.hash;
var id = start_loc.pathname + start_loc.search + start_loc.hash;
console.log("ALERT: RESULT: " + JSON.stringify([
id,
harness_status.status,

View file

@ -16,6 +16,8 @@
# TODO: keep comments in the tree
from __future__ import unicode_literals
import types
from cStringIO import StringIO
@ -48,8 +50,9 @@ atoms = {"True": True,
"False": False,
"Reset": object()}
def decode(byte_str):
return byte_str.decode("utf8")
def decode(s):
assert isinstance(s, unicode)
return s
def precedence(operator_node):
@ -76,7 +79,8 @@ class Tokenizer(object):
def tokenize(self, stream):
self.reset()
if type(stream) in types.StringTypes:
assert not isinstance(stream, unicode)
if isinstance(stream, str):
stream = StringIO(stream)
if not hasattr(stream, "name"):
self.filename = ""
@ -85,13 +89,15 @@ class Tokenizer(object):
self.next_line_state = self.line_start_state
for i, line in enumerate(stream):
assert isinstance(line, str)
self.state = self.next_line_state
assert self.state is not None
states = []
self.next_line_state = None
self.line_number = i + 1
self.index = 0
self.line = line.rstrip()
self.line = line.decode('utf-8').rstrip()
assert isinstance(self.line, unicode)
while self.state != self.eol_state:
states.append(self.state)
tokens = self.state()
@ -474,7 +480,7 @@ class Tokenizer(object):
value += self.escape_value(c)
self.consume()
return unichr(value).encode("utf8")
return unichr(value)
def escape_value(self, c):
if '0' <= c <= '9':

View file

@ -11,9 +11,6 @@ from ..node import BinaryExpressionNode, BinaryOperatorNode, VariableNode, Numbe
class TestConditional(unittest.TestCase):
def parse(self, input_str):
return self.parser.parse(StringIO(input_str))
def compile(self, input_text):
return conditional.compile(input_text)

View file

@ -13,9 +13,6 @@ from ..backends import static
class TestStatic(unittest.TestCase):
def parse(self, input_str):
return self.parser.parse(StringIO(input_str))
def compile(self, input_text, input_data):
return static.compile(input_text, input_data)

View file

@ -6674,6 +6674,978 @@
"url": "/_mozilla/mozilla/binding_keyword.html"
}
],
"mozilla/bluetooth/connect/connection-succeeds.html": [
{
"path": "mozilla/bluetooth/connect/connection-succeeds.html",
"url": "/_mozilla/mozilla/bluetooth/connect/connection-succeeds.html"
}
],
"mozilla/bluetooth/connect/device-goes-out-of-range.html": [
{
"path": "mozilla/bluetooth/connect/device-goes-out-of-range.html",
"url": "/_mozilla/mozilla/bluetooth/connect/device-goes-out-of-range.html"
}
],
"mozilla/bluetooth/connect/get-same-gatt-server.html": [
{
"path": "mozilla/bluetooth/connect/get-same-gatt-server.html",
"url": "/_mozilla/mozilla/bluetooth/connect/get-same-gatt-server.html"
}
],
"mozilla/bluetooth/disconnect/connect-disconnect-twice.html": [
{
"path": "mozilla/bluetooth/disconnect/connect-disconnect-twice.html",
"url": "/_mozilla/mozilla/bluetooth/disconnect/connect-disconnect-twice.html"
}
],
"mozilla/bluetooth/disconnect/disconnect-once.html": [
{
"path": "mozilla/bluetooth/disconnect/disconnect-once.html",
"url": "/_mozilla/mozilla/bluetooth/disconnect/disconnect-once.html"
}
],
"mozilla/bluetooth/disconnect/disconnect-twice-in-a-row.html": [
{
"path": "mozilla/bluetooth/disconnect/disconnect-twice-in-a-row.html",
"url": "/_mozilla/mozilla/bluetooth/disconnect/disconnect-twice-in-a-row.html"
}
],
"mozilla/bluetooth/getCharacteristic/blacklisted-characteristic.html": [
{
"path": "mozilla/bluetooth/getCharacteristic/blacklisted-characteristic.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristic/blacklisted-characteristic.html"
}
],
"mozilla/bluetooth/getCharacteristic/characteristic-found.html": [
{
"path": "mozilla/bluetooth/getCharacteristic/characteristic-found.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristic/characteristic-found.html"
}
],
"mozilla/bluetooth/getCharacteristic/characteristic-not-found.html": [
{
"path": "mozilla/bluetooth/getCharacteristic/characteristic-not-found.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristic/characteristic-not-found.html"
}
],
"mozilla/bluetooth/getCharacteristic/device-goes-out-of-range.html": [
{
"path": "mozilla/bluetooth/getCharacteristic/device-goes-out-of-range.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristic/device-goes-out-of-range.html"
}
],
"mozilla/bluetooth/getCharacteristic/disconnect-called-before.html": [
{
"path": "mozilla/bluetooth/getCharacteristic/disconnect-called-before.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristic/disconnect-called-before.html"
}
],
"mozilla/bluetooth/getCharacteristic/disconnect-called-during.html": [
{
"path": "mozilla/bluetooth/getCharacteristic/disconnect-called-during.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristic/disconnect-called-during.html"
}
],
"mozilla/bluetooth/getCharacteristic/get-same-characteristic.html": [
{
"path": "mozilla/bluetooth/getCharacteristic/get-same-characteristic.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristic/get-same-characteristic.html"
}
],
"mozilla/bluetooth/getCharacteristic/invalid-characteristic-name.html": [
{
"path": "mozilla/bluetooth/getCharacteristic/invalid-characteristic-name.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristic/invalid-characteristic-name.html"
}
],
"mozilla/bluetooth/getCharacteristic/service-is-removed.html": [
{
"path": "mozilla/bluetooth/getCharacteristic/service-is-removed.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristic/service-is-removed.html"
}
],
"mozilla/bluetooth/getCharacteristics/blacklisted-characteristics-with-uuid.html": [
{
"path": "mozilla/bluetooth/getCharacteristics/blacklisted-characteristics-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristics/blacklisted-characteristics-with-uuid.html"
}
],
"mozilla/bluetooth/getCharacteristics/blacklisted-characteristics.html": [
{
"path": "mozilla/bluetooth/getCharacteristics/blacklisted-characteristics.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristics/blacklisted-characteristics.html"
}
],
"mozilla/bluetooth/getCharacteristics/characteristics-found-with-uuid.html": [
{
"path": "mozilla/bluetooth/getCharacteristics/characteristics-found-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristics/characteristics-found-with-uuid.html"
}
],
"mozilla/bluetooth/getCharacteristics/characteristics-found.html": [
{
"path": "mozilla/bluetooth/getCharacteristics/characteristics-found.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristics/characteristics-found.html"
}
],
"mozilla/bluetooth/getCharacteristics/characteristics-not-found-with-uuid.html": [
{
"path": "mozilla/bluetooth/getCharacteristics/characteristics-not-found-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristics/characteristics-not-found-with-uuid.html"
}
],
"mozilla/bluetooth/getCharacteristics/characteristics-not-found.html": [
{
"path": "mozilla/bluetooth/getCharacteristics/characteristics-not-found.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristics/characteristics-not-found.html"
}
],
"mozilla/bluetooth/getCharacteristics/correct-characteristics.html": [
{
"path": "mozilla/bluetooth/getCharacteristics/correct-characteristics.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristics/correct-characteristics.html"
}
],
"mozilla/bluetooth/getCharacteristics/device-goes-out-of-range-with-uuid.html": [
{
"path": "mozilla/bluetooth/getCharacteristics/device-goes-out-of-range-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristics/device-goes-out-of-range-with-uuid.html"
}
],
"mozilla/bluetooth/getCharacteristics/device-goes-out-of-range.html": [
{
"path": "mozilla/bluetooth/getCharacteristics/device-goes-out-of-range.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristics/device-goes-out-of-range.html"
}
],
"mozilla/bluetooth/getCharacteristics/disconnect-called-before-with-uuid.html": [
{
"path": "mozilla/bluetooth/getCharacteristics/disconnect-called-before-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristics/disconnect-called-before-with-uuid.html"
}
],
"mozilla/bluetooth/getCharacteristics/disconnect-called-before.html": [
{
"path": "mozilla/bluetooth/getCharacteristics/disconnect-called-before.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristics/disconnect-called-before.html"
}
],
"mozilla/bluetooth/getCharacteristics/disconnect-called-during-with-uuid.html": [
{
"path": "mozilla/bluetooth/getCharacteristics/disconnect-called-during-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristics/disconnect-called-during-with-uuid.html"
}
],
"mozilla/bluetooth/getCharacteristics/disconnect-called-during.html": [
{
"path": "mozilla/bluetooth/getCharacteristics/disconnect-called-during.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristics/disconnect-called-during.html"
}
],
"mozilla/bluetooth/getCharacteristics/get-same-characteristics.html": [
{
"path": "mozilla/bluetooth/getCharacteristics/get-same-characteristics.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristics/get-same-characteristics.html"
}
],
"mozilla/bluetooth/getCharacteristics/invalid-characteristic-name.html": [
{
"path": "mozilla/bluetooth/getCharacteristics/invalid-characteristic-name.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristics/invalid-characteristic-name.html"
}
],
"mozilla/bluetooth/getCharacteristics/service-is-removed-with-uuid.html": [
{
"path": "mozilla/bluetooth/getCharacteristics/service-is-removed-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristics/service-is-removed-with-uuid.html"
}
],
"mozilla/bluetooth/getCharacteristics/service-is-removed.html": [
{
"path": "mozilla/bluetooth/getCharacteristics/service-is-removed.html",
"url": "/_mozilla/mozilla/bluetooth/getCharacteristics/service-is-removed.html"
}
],
"mozilla/bluetooth/getDescriptor/blacklisted-descriptor.html": [
{
"path": "mozilla/bluetooth/getDescriptor/blacklisted-descriptor.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptor/blacklisted-descriptor.html"
}
],
"mozilla/bluetooth/getDescriptor/characteristic-is-removed.html": [
{
"path": "mozilla/bluetooth/getDescriptor/characteristic-is-removed.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptor/characteristic-is-removed.html"
}
],
"mozilla/bluetooth/getDescriptor/descriptor-found.html": [
{
"path": "mozilla/bluetooth/getDescriptor/descriptor-found.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptor/descriptor-found.html"
}
],
"mozilla/bluetooth/getDescriptor/descriptor-not-found.html": [
{
"path": "mozilla/bluetooth/getDescriptor/descriptor-not-found.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptor/descriptor-not-found.html"
}
],
"mozilla/bluetooth/getDescriptor/device-goes-out-of-range.html": [
{
"path": "mozilla/bluetooth/getDescriptor/device-goes-out-of-range.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptor/device-goes-out-of-range.html"
}
],
"mozilla/bluetooth/getDescriptor/disconnect-called-before.html": [
{
"path": "mozilla/bluetooth/getDescriptor/disconnect-called-before.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptor/disconnect-called-before.html"
}
],
"mozilla/bluetooth/getDescriptor/disconnect-called-during.html": [
{
"path": "mozilla/bluetooth/getDescriptor/disconnect-called-during.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptor/disconnect-called-during.html"
}
],
"mozilla/bluetooth/getDescriptor/get-same-descriptor.html": [
{
"path": "mozilla/bluetooth/getDescriptor/get-same-descriptor.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptor/get-same-descriptor.html"
}
],
"mozilla/bluetooth/getDescriptor/invalid-descriptor-name.html": [
{
"path": "mozilla/bluetooth/getDescriptor/invalid-descriptor-name.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptor/invalid-descriptor-name.html"
}
],
"mozilla/bluetooth/getDescriptors/blacklisted-descriptors-with-uuid.html": [
{
"path": "mozilla/bluetooth/getDescriptors/blacklisted-descriptors-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptors/blacklisted-descriptors-with-uuid.html"
}
],
"mozilla/bluetooth/getDescriptors/blacklisted-descriptors.html": [
{
"path": "mozilla/bluetooth/getDescriptors/blacklisted-descriptors.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptors/blacklisted-descriptors.html"
}
],
"mozilla/bluetooth/getDescriptors/characteristic-is-removed-with-uuid.html": [
{
"path": "mozilla/bluetooth/getDescriptors/characteristic-is-removed-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptors/characteristic-is-removed-with-uuid.html"
}
],
"mozilla/bluetooth/getDescriptors/characteristic-is-removed.html": [
{
"path": "mozilla/bluetooth/getDescriptors/characteristic-is-removed.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptors/characteristic-is-removed.html"
}
],
"mozilla/bluetooth/getDescriptors/correct-descriptors.html": [
{
"path": "mozilla/bluetooth/getDescriptors/correct-descriptors.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptors/correct-descriptors.html"
}
],
"mozilla/bluetooth/getDescriptors/descriptors-found-with-uuid.html": [
{
"path": "mozilla/bluetooth/getDescriptors/descriptors-found-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptors/descriptors-found-with-uuid.html"
}
],
"mozilla/bluetooth/getDescriptors/descriptors-found.html": [
{
"path": "mozilla/bluetooth/getDescriptors/descriptors-found.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptors/descriptors-found.html"
}
],
"mozilla/bluetooth/getDescriptors/descriptors-not-found-with-uuid.html": [
{
"path": "mozilla/bluetooth/getDescriptors/descriptors-not-found-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptors/descriptors-not-found-with-uuid.html"
}
],
"mozilla/bluetooth/getDescriptors/descriptors-not-found.html": [
{
"path": "mozilla/bluetooth/getDescriptors/descriptors-not-found.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptors/descriptors-not-found.html"
}
],
"mozilla/bluetooth/getDescriptors/device-goes-out-of-range-with-uuid.html": [
{
"path": "mozilla/bluetooth/getDescriptors/device-goes-out-of-range-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptors/device-goes-out-of-range-with-uuid.html"
}
],
"mozilla/bluetooth/getDescriptors/device-goes-out-of-range.html": [
{
"path": "mozilla/bluetooth/getDescriptors/device-goes-out-of-range.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptors/device-goes-out-of-range.html"
}
],
"mozilla/bluetooth/getDescriptors/disconnect-called-before-with-uuid.html": [
{
"path": "mozilla/bluetooth/getDescriptors/disconnect-called-before-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptors/disconnect-called-before-with-uuid.html"
}
],
"mozilla/bluetooth/getDescriptors/disconnect-called-before.html": [
{
"path": "mozilla/bluetooth/getDescriptors/disconnect-called-before.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptors/disconnect-called-before.html"
}
],
"mozilla/bluetooth/getDescriptors/disconnect-called-during-with-uuid.html": [
{
"path": "mozilla/bluetooth/getDescriptors/disconnect-called-during-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptors/disconnect-called-during-with-uuid.html"
}
],
"mozilla/bluetooth/getDescriptors/disconnect-called-during.html": [
{
"path": "mozilla/bluetooth/getDescriptors/disconnect-called-during.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptors/disconnect-called-during.html"
}
],
"mozilla/bluetooth/getDescriptors/get-same-descriptors.html": [
{
"path": "mozilla/bluetooth/getDescriptors/get-same-descriptors.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptors/get-same-descriptors.html"
}
],
"mozilla/bluetooth/getDescriptors/invalid-descriptor-name.html": [
{
"path": "mozilla/bluetooth/getDescriptors/invalid-descriptor-name.html",
"url": "/_mozilla/mozilla/bluetooth/getDescriptors/invalid-descriptor-name.html"
}
],
"mozilla/bluetooth/getPrimaryService/device-goes-out-of-range.html": [
{
"path": "mozilla/bluetooth/getPrimaryService/device-goes-out-of-range.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryService/device-goes-out-of-range.html"
}
],
"mozilla/bluetooth/getPrimaryService/disconnect-called-before.html": [
{
"path": "mozilla/bluetooth/getPrimaryService/disconnect-called-before.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryService/disconnect-called-before.html"
}
],
"mozilla/bluetooth/getPrimaryService/disconnect-called-during.html": [
{
"path": "mozilla/bluetooth/getPrimaryService/disconnect-called-during.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryService/disconnect-called-during.html"
}
],
"mozilla/bluetooth/getPrimaryService/disconnected-device.html": [
{
"path": "mozilla/bluetooth/getPrimaryService/disconnected-device.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryService/disconnected-device.html"
}
],
"mozilla/bluetooth/getPrimaryService/get-same-service.html": [
{
"path": "mozilla/bluetooth/getPrimaryService/get-same-service.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryService/get-same-service.html"
}
],
"mozilla/bluetooth/getPrimaryService/invalid-service-name.html": [
{
"path": "mozilla/bluetooth/getPrimaryService/invalid-service-name.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryService/invalid-service-name.html"
}
],
"mozilla/bluetooth/getPrimaryService/no-permission-absent-service.html": [
{
"path": "mozilla/bluetooth/getPrimaryService/no-permission-absent-service.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryService/no-permission-absent-service.html"
}
],
"mozilla/bluetooth/getPrimaryService/no-permission-present-service.html": [
{
"path": "mozilla/bluetooth/getPrimaryService/no-permission-present-service.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryService/no-permission-present-service.html"
}
],
"mozilla/bluetooth/getPrimaryService/service-found.html": [
{
"path": "mozilla/bluetooth/getPrimaryService/service-found.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryService/service-found.html"
}
],
"mozilla/bluetooth/getPrimaryService/service-not-found.html": [
{
"path": "mozilla/bluetooth/getPrimaryService/service-not-found.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryService/service-not-found.html"
}
],
"mozilla/bluetooth/getPrimaryServices/blacklisted-services-with-uuid.html": [
{
"path": "mozilla/bluetooth/getPrimaryServices/blacklisted-services-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryServices/blacklisted-services-with-uuid.html"
}
],
"mozilla/bluetooth/getPrimaryServices/blacklisted-services.html": [
{
"path": "mozilla/bluetooth/getPrimaryServices/blacklisted-services.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryServices/blacklisted-services.html"
}
],
"mozilla/bluetooth/getPrimaryServices/correct-services.html": [
{
"path": "mozilla/bluetooth/getPrimaryServices/correct-services.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryServices/correct-services.html"
}
],
"mozilla/bluetooth/getPrimaryServices/device-goes-out-of-range-with-uuid.html": [
{
"path": "mozilla/bluetooth/getPrimaryServices/device-goes-out-of-range-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryServices/device-goes-out-of-range-with-uuid.html"
}
],
"mozilla/bluetooth/getPrimaryServices/device-goes-out-of-range.html": [
{
"path": "mozilla/bluetooth/getPrimaryServices/device-goes-out-of-range.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryServices/device-goes-out-of-range.html"
}
],
"mozilla/bluetooth/getPrimaryServices/disconnect-called-before-with-uuid.html": [
{
"path": "mozilla/bluetooth/getPrimaryServices/disconnect-called-before-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryServices/disconnect-called-before-with-uuid.html"
}
],
"mozilla/bluetooth/getPrimaryServices/disconnect-called-before.html": [
{
"path": "mozilla/bluetooth/getPrimaryServices/disconnect-called-before.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryServices/disconnect-called-before.html"
}
],
"mozilla/bluetooth/getPrimaryServices/disconnect-called-during-with-uuid.html": [
{
"path": "mozilla/bluetooth/getPrimaryServices/disconnect-called-during-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryServices/disconnect-called-during-with-uuid.html"
}
],
"mozilla/bluetooth/getPrimaryServices/disconnect-called-during.html": [
{
"path": "mozilla/bluetooth/getPrimaryServices/disconnect-called-during.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryServices/disconnect-called-during.html"
}
],
"mozilla/bluetooth/getPrimaryServices/disconnected-device-with-uuid.html": [
{
"path": "mozilla/bluetooth/getPrimaryServices/disconnected-device-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryServices/disconnected-device-with-uuid.html"
}
],
"mozilla/bluetooth/getPrimaryServices/disconnected-device.html": [
{
"path": "mozilla/bluetooth/getPrimaryServices/disconnected-device.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryServices/disconnected-device.html"
}
],
"mozilla/bluetooth/getPrimaryServices/get-same-service.html": [
{
"path": "mozilla/bluetooth/getPrimaryServices/get-same-service.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryServices/get-same-service.html"
}
],
"mozilla/bluetooth/getPrimaryServices/invalid-service-name.html": [
{
"path": "mozilla/bluetooth/getPrimaryServices/invalid-service-name.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryServices/invalid-service-name.html"
}
],
"mozilla/bluetooth/getPrimaryServices/no-permission-absent-service-with-uuid.html": [
{
"path": "mozilla/bluetooth/getPrimaryServices/no-permission-absent-service-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryServices/no-permission-absent-service-with-uuid.html"
}
],
"mozilla/bluetooth/getPrimaryServices/no-permission-present-service-with-uuid.html": [
{
"path": "mozilla/bluetooth/getPrimaryServices/no-permission-present-service-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryServices/no-permission-present-service-with-uuid.html"
}
],
"mozilla/bluetooth/getPrimaryServices/no-permission-present-service.html": [
{
"path": "mozilla/bluetooth/getPrimaryServices/no-permission-present-service.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryServices/no-permission-present-service.html"
}
],
"mozilla/bluetooth/getPrimaryServices/services-found-with-uuid.html": [
{
"path": "mozilla/bluetooth/getPrimaryServices/services-found-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryServices/services-found-with-uuid.html"
}
],
"mozilla/bluetooth/getPrimaryServices/services-found.html": [
{
"path": "mozilla/bluetooth/getPrimaryServices/services-found.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryServices/services-found.html"
}
],
"mozilla/bluetooth/getPrimaryServices/services-not-found-with-uuid.html": [
{
"path": "mozilla/bluetooth/getPrimaryServices/services-not-found-with-uuid.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryServices/services-not-found-with-uuid.html"
}
],
"mozilla/bluetooth/getPrimaryServices/services-not-found.html": [
{
"path": "mozilla/bluetooth/getPrimaryServices/services-not-found.html",
"url": "/_mozilla/mozilla/bluetooth/getPrimaryServices/services-not-found.html"
}
],
"mozilla/bluetooth/readValue/characteristic/blacklisted-characteristic.html": [
{
"path": "mozilla/bluetooth/readValue/characteristic/blacklisted-characteristic.html",
"url": "/_mozilla/mozilla/bluetooth/readValue/characteristic/blacklisted-characteristic.html"
}
],
"mozilla/bluetooth/readValue/characteristic/characteristic-is-removed.html": [
{
"path": "mozilla/bluetooth/readValue/characteristic/characteristic-is-removed.html",
"url": "/_mozilla/mozilla/bluetooth/readValue/characteristic/characteristic-is-removed.html"
}
],
"mozilla/bluetooth/readValue/characteristic/device-goes-out-of-range.html": [
{
"path": "mozilla/bluetooth/readValue/characteristic/device-goes-out-of-range.html",
"url": "/_mozilla/mozilla/bluetooth/readValue/characteristic/device-goes-out-of-range.html"
}
],
"mozilla/bluetooth/readValue/characteristic/disconnect-called-before.html": [
{
"path": "mozilla/bluetooth/readValue/characteristic/disconnect-called-before.html",
"url": "/_mozilla/mozilla/bluetooth/readValue/characteristic/disconnect-called-before.html"
}
],
"mozilla/bluetooth/readValue/characteristic/read-succeeds.html": [
{
"path": "mozilla/bluetooth/readValue/characteristic/read-succeeds.html",
"url": "/_mozilla/mozilla/bluetooth/readValue/characteristic/read-succeeds.html"
}
],
"mozilla/bluetooth/readValue/characteristic/read-updates-value.html": [
{
"path": "mozilla/bluetooth/readValue/characteristic/read-updates-value.html",
"url": "/_mozilla/mozilla/bluetooth/readValue/characteristic/read-updates-value.html"
}
],
"mozilla/bluetooth/readValue/characteristic/service-is-removed.html": [
{
"path": "mozilla/bluetooth/readValue/characteristic/service-is-removed.html",
"url": "/_mozilla/mozilla/bluetooth/readValue/characteristic/service-is-removed.html"
}
],
"mozilla/bluetooth/readValue/descriptor/blacklisted-descriptor.html": [
{
"path": "mozilla/bluetooth/readValue/descriptor/blacklisted-descriptor.html",
"url": "/_mozilla/mozilla/bluetooth/readValue/descriptor/blacklisted-descriptor.html"
}
],
"mozilla/bluetooth/readValue/descriptor/characteristic-is-removed.html": [
{
"path": "mozilla/bluetooth/readValue/descriptor/characteristic-is-removed.html",
"url": "/_mozilla/mozilla/bluetooth/readValue/descriptor/characteristic-is-removed.html"
}
],
"mozilla/bluetooth/readValue/descriptor/descriptor-is-removed.html": [
{
"path": "mozilla/bluetooth/readValue/descriptor/descriptor-is-removed.html",
"url": "/_mozilla/mozilla/bluetooth/readValue/descriptor/descriptor-is-removed.html"
}
],
"mozilla/bluetooth/readValue/descriptor/device-goes-out-of-range.html": [
{
"path": "mozilla/bluetooth/readValue/descriptor/device-goes-out-of-range.html",
"url": "/_mozilla/mozilla/bluetooth/readValue/descriptor/device-goes-out-of-range.html"
}
],
"mozilla/bluetooth/readValue/descriptor/disconnect-called-before.html": [
{
"path": "mozilla/bluetooth/readValue/descriptor/disconnect-called-before.html",
"url": "/_mozilla/mozilla/bluetooth/readValue/descriptor/disconnect-called-before.html"
}
],
"mozilla/bluetooth/readValue/descriptor/read-succeeds.html": [
{
"path": "mozilla/bluetooth/readValue/descriptor/read-succeeds.html",
"url": "/_mozilla/mozilla/bluetooth/readValue/descriptor/read-succeeds.html"
}
],
"mozilla/bluetooth/readValue/descriptor/read-updates-value.html": [
{
"path": "mozilla/bluetooth/readValue/descriptor/read-updates-value.html",
"url": "/_mozilla/mozilla/bluetooth/readValue/descriptor/read-updates-value.html"
}
],
"mozilla/bluetooth/readValue/descriptor/service-is-removed.html": [
{
"path": "mozilla/bluetooth/readValue/descriptor/service-is-removed.html",
"url": "/_mozilla/mozilla/bluetooth/readValue/descriptor/service-is-removed.html"
}
],
"mozilla/bluetooth/requestDevice/accept-all-devices-with-filter.html": [
{
"path": "mozilla/bluetooth/requestDevice/accept-all-devices-with-filter.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/accept-all-devices-with-filter.html"
}
],
"mozilla/bluetooth/requestDevice/accept-all-devices.html": [
{
"path": "mozilla/bluetooth/requestDevice/accept-all-devices.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/accept-all-devices.html"
}
],
"mozilla/bluetooth/requestDevice/adapter-not-present.html": [
{
"path": "mozilla/bluetooth/requestDevice/adapter-not-present.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/adapter-not-present.html"
}
],
"mozilla/bluetooth/requestDevice/adapter-off.html": [
{
"path": "mozilla/bluetooth/requestDevice/adapter-off.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/adapter-off.html"
}
],
"mozilla/bluetooth/requestDevice/blacklisted-service-in-filter.html": [
{
"path": "mozilla/bluetooth/requestDevice/blacklisted-service-in-filter.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/blacklisted-service-in-filter.html"
}
],
"mozilla/bluetooth/requestDevice/blacklisted-service-in-optionalServices.html": [
{
"path": "mozilla/bluetooth/requestDevice/blacklisted-service-in-optionalServices.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/blacklisted-service-in-optionalServices.html"
}
],
"mozilla/bluetooth/requestDevice/canonicalizeFilter/empty-filter.html": [
{
"path": "mozilla/bluetooth/requestDevice/canonicalizeFilter/empty-filter.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/canonicalizeFilter/empty-filter.html"
}
],
"mozilla/bluetooth/requestDevice/canonicalizeFilter/empty-filters-member.html": [
{
"path": "mozilla/bluetooth/requestDevice/canonicalizeFilter/empty-filters-member.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/canonicalizeFilter/empty-filters-member.html"
}
],
"mozilla/bluetooth/requestDevice/canonicalizeFilter/empty-namePrefix.html": [
{
"path": "mozilla/bluetooth/requestDevice/canonicalizeFilter/empty-namePrefix.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/canonicalizeFilter/empty-namePrefix.html"
}
],
"mozilla/bluetooth/requestDevice/canonicalizeFilter/empty-services-member.html": [
{
"path": "mozilla/bluetooth/requestDevice/canonicalizeFilter/empty-services-member.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/canonicalizeFilter/empty-services-member.html"
}
],
"mozilla/bluetooth/requestDevice/canonicalizeFilter/max-length-for-device-name-name.html": [
{
"path": "mozilla/bluetooth/requestDevice/canonicalizeFilter/max-length-for-device-name-name.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/canonicalizeFilter/max-length-for-device-name-name.html"
}
],
"mozilla/bluetooth/requestDevice/canonicalizeFilter/max-length-for-device-name-namePrefix.html": [
{
"path": "mozilla/bluetooth/requestDevice/canonicalizeFilter/max-length-for-device-name-namePrefix.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/canonicalizeFilter/max-length-for-device-name-namePrefix.html"
}
],
"mozilla/bluetooth/requestDevice/canonicalizeFilter/max-length-for-name-in-adv-name.html": [
{
"path": "mozilla/bluetooth/requestDevice/canonicalizeFilter/max-length-for-name-in-adv-name.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/canonicalizeFilter/max-length-for-name-in-adv-name.html"
}
],
"mozilla/bluetooth/requestDevice/canonicalizeFilter/max-length-for-name-in-adv-namePrefix.html": [
{
"path": "mozilla/bluetooth/requestDevice/canonicalizeFilter/max-length-for-name-in-adv-namePrefix.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/canonicalizeFilter/max-length-for-name-in-adv-namePrefix.html"
}
],
"mozilla/bluetooth/requestDevice/canonicalizeFilter/no-arguments.html": [
{
"path": "mozilla/bluetooth/requestDevice/canonicalizeFilter/no-arguments.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/canonicalizeFilter/no-arguments.html"
}
],
"mozilla/bluetooth/requestDevice/canonicalizeFilter/no-filters-member.html": [
{
"path": "mozilla/bluetooth/requestDevice/canonicalizeFilter/no-filters-member.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/canonicalizeFilter/no-filters-member.html"
}
],
"mozilla/bluetooth/requestDevice/canonicalizeFilter/unicode-max-length-for-device-name-name.html": [
{
"path": "mozilla/bluetooth/requestDevice/canonicalizeFilter/unicode-max-length-for-device-name-name.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/canonicalizeFilter/unicode-max-length-for-device-name-name.html"
}
],
"mozilla/bluetooth/requestDevice/canonicalizeFilter/unicode-max-length-for-device-name-namePrefix.html": [
{
"path": "mozilla/bluetooth/requestDevice/canonicalizeFilter/unicode-max-length-for-device-name-namePrefix.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/canonicalizeFilter/unicode-max-length-for-device-name-namePrefix.html"
}
],
"mozilla/bluetooth/requestDevice/canonicalizeFilter/unicode-max-length-for-name-in-adv-name.html": [
{
"path": "mozilla/bluetooth/requestDevice/canonicalizeFilter/unicode-max-length-for-name-in-adv-name.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/canonicalizeFilter/unicode-max-length-for-name-in-adv-name.html"
}
],
"mozilla/bluetooth/requestDevice/canonicalizeFilter/unicode-max-length-for-name-in-adv-namePrefix.html": [
{
"path": "mozilla/bluetooth/requestDevice/canonicalizeFilter/unicode-max-length-for-name-in-adv-namePrefix.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/canonicalizeFilter/unicode-max-length-for-name-in-adv-namePrefix.html"
}
],
"mozilla/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-name.html": [
{
"path": "mozilla/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-name.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-name.html"
}
],
"mozilla/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-namePrefix.html": [
{
"path": "mozilla/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-namePrefix.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-namePrefix.html"
}
],
"mozilla/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.html": [
{
"path": "mozilla/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.html"
}
],
"mozilla/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-services-member.html": [
{
"path": "mozilla/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-services-member.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-services-member.html"
}
],
"mozilla/bluetooth/requestDevice/correct-uuids.html": [
{
"path": "mozilla/bluetooth/requestDevice/correct-uuids.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/correct-uuids.html"
}
],
"mozilla/bluetooth/requestDevice/discovery-succeeds.html": [
{
"path": "mozilla/bluetooth/requestDevice/discovery-succeeds.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/discovery-succeeds.html"
}
],
"mozilla/bluetooth/requestDevice/filter-does-not-match.html": [
{
"path": "mozilla/bluetooth/requestDevice/filter-does-not-match.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/filter-does-not-match.html"
}
],
"mozilla/bluetooth/requestDevice/filter-matches.html": [
{
"path": "mozilla/bluetooth/requestDevice/filter-matches.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/filter-matches.html"
}
],
"mozilla/bluetooth/requestDevice/name-empty-device-from-name-empty-filter.html": [
{
"path": "mozilla/bluetooth/requestDevice/name-empty-device-from-name-empty-filter.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/name-empty-device-from-name-empty-filter.html"
}
],
"mozilla/bluetooth/requestDevice/name-empty-device-from-name-prefix-filter.html": [
{
"path": "mozilla/bluetooth/requestDevice/name-empty-device-from-name-prefix-filter.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/name-empty-device-from-name-prefix-filter.html"
}
],
"mozilla/bluetooth/requestDevice/name-empty-device-from-name-wrong-filter.html": [
{
"path": "mozilla/bluetooth/requestDevice/name-empty-device-from-name-wrong-filter.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/name-empty-device-from-name-wrong-filter.html"
}
],
"mozilla/bluetooth/requestDevice/name-empty-device-from-service-filter.html": [
{
"path": "mozilla/bluetooth/requestDevice/name-empty-device-from-service-filter.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/name-empty-device-from-service-filter.html"
}
],
"mozilla/bluetooth/requestDevice/name-empty-filter.html": [
{
"path": "mozilla/bluetooth/requestDevice/name-empty-filter.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/name-empty-filter.html"
}
],
"mozilla/bluetooth/requestDevice/name-missing-device-from-name-empty-filter.html": [
{
"path": "mozilla/bluetooth/requestDevice/name-missing-device-from-name-empty-filter.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/name-missing-device-from-name-empty-filter.html"
}
],
"mozilla/bluetooth/requestDevice/name-missing-device-from-name-prefix-filter.html": [
{
"path": "mozilla/bluetooth/requestDevice/name-missing-device-from-name-prefix-filter.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/name-missing-device-from-name-prefix-filter.html"
}
],
"mozilla/bluetooth/requestDevice/name-missing-device-from-name-wrong-filter.html": [
{
"path": "mozilla/bluetooth/requestDevice/name-missing-device-from-name-wrong-filter.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/name-missing-device-from-name-wrong-filter.html"
}
],
"mozilla/bluetooth/requestDevice/name-missing-device-from-service-filter.html": [
{
"path": "mozilla/bluetooth/requestDevice/name-missing-device-from-service-filter.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/name-missing-device-from-service-filter.html"
}
],
"mozilla/bluetooth/requestDevice/no-devices.html": [
{
"path": "mozilla/bluetooth/requestDevice/no-devices.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/no-devices.html"
}
],
"mozilla/bluetooth/requestDevice/not-accept-all-devices-without-filter.html": [
{
"path": "mozilla/bluetooth/requestDevice/not-accept-all-devices-without-filter.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/not-accept-all-devices-without-filter.html"
}
],
"mozilla/bluetooth/requestDevice/same-device.html": [
{
"path": "mozilla/bluetooth/requestDevice/same-device.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/same-device.html"
}
],
"mozilla/bluetooth/requestDevice/single-filter-single-service.html": [
{
"path": "mozilla/bluetooth/requestDevice/single-filter-single-service.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/single-filter-single-service.html"
}
],
"mozilla/bluetooth/requestDevice/single-filter-two-services-fails.html": [
{
"path": "mozilla/bluetooth/requestDevice/single-filter-two-services-fails.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/single-filter-two-services-fails.html"
}
],
"mozilla/bluetooth/requestDevice/single-filter-two-services-succeeds.html": [
{
"path": "mozilla/bluetooth/requestDevice/single-filter-two-services-succeeds.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/single-filter-two-services-succeeds.html"
}
],
"mozilla/bluetooth/requestDevice/two-filters.html": [
{
"path": "mozilla/bluetooth/requestDevice/two-filters.html",
"url": "/_mozilla/mozilla/bluetooth/requestDevice/two-filters.html"
}
],
"mozilla/bluetooth/writeValue/characteristic/blacklisted-characteristic.html": [
{
"path": "mozilla/bluetooth/writeValue/characteristic/blacklisted-characteristic.html",
"url": "/_mozilla/mozilla/bluetooth/writeValue/characteristic/blacklisted-characteristic.html"
}
],
"mozilla/bluetooth/writeValue/characteristic/characteristic-is-removed.html": [
{
"path": "mozilla/bluetooth/writeValue/characteristic/characteristic-is-removed.html",
"url": "/_mozilla/mozilla/bluetooth/writeValue/characteristic/characteristic-is-removed.html"
}
],
"mozilla/bluetooth/writeValue/characteristic/device-goes-out-of-range.html": [
{
"path": "mozilla/bluetooth/writeValue/characteristic/device-goes-out-of-range.html",
"url": "/_mozilla/mozilla/bluetooth/writeValue/characteristic/device-goes-out-of-range.html"
}
],
"mozilla/bluetooth/writeValue/characteristic/disconnect-called-before.html": [
{
"path": "mozilla/bluetooth/writeValue/characteristic/disconnect-called-before.html",
"url": "/_mozilla/mozilla/bluetooth/writeValue/characteristic/disconnect-called-before.html"
}
],
"mozilla/bluetooth/writeValue/characteristic/service-is-removed.html": [
{
"path": "mozilla/bluetooth/writeValue/characteristic/service-is-removed.html",
"url": "/_mozilla/mozilla/bluetooth/writeValue/characteristic/service-is-removed.html"
}
],
"mozilla/bluetooth/writeValue/characteristic/write-succeeds.html": [
{
"path": "mozilla/bluetooth/writeValue/characteristic/write-succeeds.html",
"url": "/_mozilla/mozilla/bluetooth/writeValue/characteristic/write-succeeds.html"
}
],
"mozilla/bluetooth/writeValue/characteristic/write-updates-value.html": [
{
"path": "mozilla/bluetooth/writeValue/characteristic/write-updates-value.html",
"url": "/_mozilla/mozilla/bluetooth/writeValue/characteristic/write-updates-value.html"
}
],
"mozilla/bluetooth/writeValue/descriptor/blacklisted-descriptor.html": [
{
"path": "mozilla/bluetooth/writeValue/descriptor/blacklisted-descriptor.html",
"url": "/_mozilla/mozilla/bluetooth/writeValue/descriptor/blacklisted-descriptor.html"
}
],
"mozilla/bluetooth/writeValue/descriptor/characteristic-is-removed.html": [
{
"path": "mozilla/bluetooth/writeValue/descriptor/characteristic-is-removed.html",
"url": "/_mozilla/mozilla/bluetooth/writeValue/descriptor/characteristic-is-removed.html"
}
],
"mozilla/bluetooth/writeValue/descriptor/descriptor-is-removed.html": [
{
"path": "mozilla/bluetooth/writeValue/descriptor/descriptor-is-removed.html",
"url": "/_mozilla/mozilla/bluetooth/writeValue/descriptor/descriptor-is-removed.html"
}
],
"mozilla/bluetooth/writeValue/descriptor/device-goes-out-of-range.html": [
{
"path": "mozilla/bluetooth/writeValue/descriptor/device-goes-out-of-range.html",
"url": "/_mozilla/mozilla/bluetooth/writeValue/descriptor/device-goes-out-of-range.html"
}
],
"mozilla/bluetooth/writeValue/descriptor/disconnect-called-before.html": [
{
"path": "mozilla/bluetooth/writeValue/descriptor/disconnect-called-before.html",
"url": "/_mozilla/mozilla/bluetooth/writeValue/descriptor/disconnect-called-before.html"
}
],
"mozilla/bluetooth/writeValue/descriptor/service-is-removed.html": [
{
"path": "mozilla/bluetooth/writeValue/descriptor/service-is-removed.html",
"url": "/_mozilla/mozilla/bluetooth/writeValue/descriptor/service-is-removed.html"
}
],
"mozilla/bluetooth/writeValue/descriptor/write-succeeds.html": [
{
"path": "mozilla/bluetooth/writeValue/descriptor/write-succeeds.html",
"url": "/_mozilla/mozilla/bluetooth/writeValue/descriptor/write-succeeds.html"
}
],
"mozilla/bluetooth/writeValue/descriptor/write-updates-value.html": [
{
"path": "mozilla/bluetooth/writeValue/descriptor/write-updates-value.html",
"url": "/_mozilla/mozilla/bluetooth/writeValue/descriptor/write-updates-value.html"
}
],
"mozilla/body_listener.html": [
{
"path": "mozilla/body_listener.html",

View file

@ -0,0 +1 @@
prefs: [dom.bluetooth.testing.enabled:true]

View file

@ -0,0 +1,4 @@
[device-goes-out-of-range.html]
type: testharness
[Device goes out of range. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[device-goes-out-of-range.html]
type: testharness
[Device goes out of range. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[disconnect-called-before.html]
type: testharness
[disconnect() called before getCharacteristic. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[disconnect-called-during.html]
type: testharness
[disconnect() called during getCharacteristic. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[get-same-characteristic.html]
type: testharness
[Calls to get the same characteristic should return the same object.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[service-is-removed.html]
type: testharness
[Service is removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[blacklisted-characteristics.html]
type: testharness
[The Device Information service is composed of blacklisted characteristics so we shouldn't find any.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[device-goes-out-of-range-with-uuid.html]
type: testharness
[Device goes out of range with UUID. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[device-goes-out-of-range.html]
type: testharness
[Device goes out of range. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[disconnect-called-before-with-uuid.html]
type: testharness
[disconnect() called before getCharacteristics. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[disconnect-called-before.html]
type: testharness
[disconnect() called before getCharacteristics. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[disconnect-called-during-with-uuid.html]
type: testharness
[disconnect() called during getCharacteristics. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[disconnect-called-during.html]
type: testharness
[disconnect() called during getCharacteristics. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[get-same-characteristics.html]
type: testharness
[Calls to get the same characteristics should return the same objects.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[service-is-removed-with-uuid.html]
type: testharness
[Service is removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[service-is-removed.html]
type: testharness
[Service is removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[characteristic-is-removed.html]
type: testharness
[Characteristic is removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[device-goes-out-of-range.html]
type: testharness
[Device goes out of range. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[disconnect-called-before.html]
type: testharness
[disconnect() called before getDescriptor. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[disconnect-called-during.html]
type: testharness
[disconnect() called during getDescriptor. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[get-same-descriptor.html]
type: testharness
[Calls to get the same descriptor should return the same object.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[blacklisted-descriptors.html]
type: testharness
[The descriptors are blacklisted.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[characteristic-is-removed-with-uuid.html]
type: testharness
[Characteristic is removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[characteristic-is-removed.html]
type: testharness
[Characteristic is removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[device-goes-out-of-range-with-uuid.html]
type: testharness
[Device goes out of range. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[device-goes-out-of-range.html]
type: testharness
[Device goes out of range. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[disconnect-called-before-with-uuid.html]
type: testharness
[disconnect() called before getDescriptors. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[disconnect-called-before.html]
type: testharness
[disconnect() called before getDescriptors. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[disconnect-called-during-with-uuid.html]
type: testharness
[disconnect() called during getDescriptors. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[disconnect-called-during.html]
type: testharness
[disconnect() called during getDescriptors. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[get-same-descriptors.html]
type: testharness
[Calls to get the same descriptor should return the same object.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[device-goes-out-of-range.html]
type: testharness
[Device goes out of range. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[disconnect-called-before.html]
type: testharness
[disconnect() called before getPrimaryService. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[disconnect-called-during.html]
type: testharness
[disconnect() called during getPrimaryService. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[disconnected-device.html]
type: testharness
[getPrimaryService called before connecting. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[get-same-service.html]
type: testharness
[Calls to get the same service should return the same object.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[blacklisted-services.html]
type: testharness
[Request for services. Does not return blacklisted service.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[device-goes-out-of-range-with-uuid.html]
type: testharness
[Device goes out of range. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[device-goes-out-of-range.html]
type: testharness
[Device goes out of range. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[disconnect-called-before-with-uuid.html]
type: testharness
[disconnect() called before getPrimaryServices. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[disconnect-called-before.html]
type: testharness
[disconnect() called before getPrimaryServices. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[disconnect-called-during-with-uuid.html]
type: testharness
[disconnect() called during getPrimaryServices. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[disconnect-called-during.html]
type: testharness
[disconnect() called during getPrimaryServices. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[disconnected-device-with-uuid.html]
type: testharness
[getPrimaryServices called before connecting. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[disconnected-device.html]
type: testharness
[getPrimaryServices called before connecting. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[get-same-service.html]
type: testharness
[Calls to get the same service should return the same object.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[no-permission-present-service.html]
type: testharness
[Request for present service without permission. Reject with NotFoundError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[characteristic-is-removed.html]
type: testharness
[Characteristic gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[device-goes-out-of-range.html]
type: testharness
[Device goes out of range. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[service-is-removed.html]
type: testharness
[Service gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[characteristic-is-removed.html]
type: testharness
[Characteristic gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[descriptor-is-removed.html]
type: testharness
[Descriptor gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[device-goes-out-of-range.html]
type: testharness
[Device goes out of range. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[service-is-removed.html]
type: testharness
[Service gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[adapter-not-present.html]
type: testharness
[Reject with NotFoundError if the adapter is not present.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[adapter-off.html]
type: testharness
[Reject with NotFoundError if the adapter is off.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[max-length-for-name-in-adv-name.html]
type: testharness
[A device name longer than 29 must reject.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[max-length-for-name-in-adv-namePrefix.html]
type: testharness
[A device name prefix longer than 29 must reject.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[unicode-max-length-for-name-in-adv-name.html]
type: testharness
[Unicode string with utf8 representation between (29, 248\] bytes in 'name' must throw NotFoundError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[unicode-max-length-for-name-in-adv-namePrefix.html]
type: testharness
[Unicode string with utf8 representation between (29, 248\] bytes in 'namePrefix' must throw NotFoundError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[correct-uuids.html]
type: testharness
[We should only see UUID's that we've been given permission for.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[name-empty-device-from-name-empty-filter.html]
type: testharness
[An empty name device can be obtained by empty name filter.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[name-empty-filter.html]
type: testharness
[A named device is not matched by a filter with an empty name.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[name-missing-device-from-name-empty-filter.html]
type: testharness
[An unnamed device can not be obtained by empty name filter.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[same-device.html]
type: testharness
[Returned device should always be the same.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[characteristic-is-removed.html]
type: testharness
[Characteristic gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[device-goes-out-of-range.html]
type: testharness
[Device goes out of range. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[service-is-removed.html]
type: testharness
[Service gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[write-updates-value.html]
type: testharness
[A regular write request to a writable characteristic should update value.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[characteristic-is-removed.html]
type: testharness
[Characteristic gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[descriptor-is-removed.html]
type: testharness
[Descriptor gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[device-goes-out-of-range.html]
type: testharness
[Device goes out of range. Reject with NetworkError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[service-is-removed.html]
type: testharness
[Service gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[write-updates-value.html]
type: testharness
[A regular write request to a writable descriptor should update value.]
expected: FAIL

View file

@ -0,0 +1,15 @@
<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/bluetooth/bluetooth-helpers.js"></script>
<script>
'use strict';
promise_test(() => {
window.testRunner.setBluetoothMockDataSet(adapter_type.heart_rate);
return window.navigator.bluetooth.requestDevice({
filters: [{services: [heart_rate.name]}]
})
.then(device => device.gatt.connect())
.then(gattServer => assert_true(gattServer.connected));
}, 'Device will connect');
</script>

View file

@ -0,0 +1,17 @@
<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/bluetooth/bluetooth-helpers.js"></script>
<script>
'use strict';
promise_test(t => {
window.testRunner.setBluetoothMockDataSet(adapter_type.heart_rate);
return window.navigator.bluetooth.requestDevice({
filters: [{services: [heart_rate.name]}]
})
.then(device => {
window.testRunner.setBluetoothMockDataSet(adapter_type.empty);
return promise_rejects(t, 'NetworkError', device.gatt.connect());
});
}, 'Device goes out of range. Reject with NetworkError.');
</script>

View file

@ -0,0 +1,15 @@
<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/bluetooth/bluetooth-helpers.js"></script>
<script>
'use strict';
promise_test(() => {
window.testRunner.setBluetoothMockDataSet(adapter_type.heart_rate);
return window.navigator.bluetooth.requestDevice({
filters: [{services: [heart_rate.name]}]
})
.then(device => Promise.all([device.gatt.connect(), device.gatt.connect()]))
.then(gattServers => assert_equals(gattServers[0], gattServers[1]));
}, 'Multiple connects should return the same gatt object.');
</script>

View file

@ -0,0 +1,26 @@
<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/bluetooth/bluetooth-helpers.js"></script>
<script>
'use strict';
promise_test(() => {
window.testRunner.setBluetoothMockDataSet(adapter_type.heart_rate);
return window.navigator.bluetooth.requestDevice({
filters: [{services: [heart_rate.name]}]
})
.then(device => {
return device.gatt.connect()
.then(gattServer => {
assert_true(gattServer.connected);
gattServer.disconnect();
assert_false(gattServer.connected);
})
.then(() => device.gatt.connect()).then(gattServer => {
assert_true(gattServer.connected);
gattServer.disconnect();
assert_false(gattServer.connected);
});
});
}, 'Connect + Disconnect twice still results in \'connected\' being false.');
</script>

View file

@ -0,0 +1,19 @@
<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/bluetooth/bluetooth-helpers.js"></script>
<script>
'use strict';
promise_test(() => {
window.testRunner.setBluetoothMockDataSet(adapter_type.heart_rate);
return window.navigator.bluetooth.requestDevice({
filters: [{services: [heart_rate.name]}]
})
.then(device => device.gatt.connect())
.then(gattServer => {
assert_true(gattServer.connected);
gattServer.disconnect();
assert_false(gattServer.connected);
});
}, '\'connected\' is set to false after disconnect is called.');
</script>

View file

@ -0,0 +1,21 @@
<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/bluetooth/bluetooth-helpers.js"></script>
<script>
'use strict';
promise_test(() => {
window.testRunner.setBluetoothMockDataSet(adapter_type.heart_rate);
return window.navigator.bluetooth.requestDevice({
filters: [{services: [heart_rate.name]}]
})
.then(device => device.gatt.connect())
.then(gattServer => {
assert_true(gattServer.connected);
gattServer.disconnect();
assert_false(gattServer.connected);
gattServer.disconnect();
assert_false(gattServer.connected);
});
}, 'Calling disconnect twice in a row still results in \'connected\' ' + 'being false.');
</script>

View file

@ -0,0 +1,16 @@
<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/bluetooth/bluetooth-helpers.js"></script>
<script>
'use strict';
promise_test(t => {
window.testRunner.setBluetoothMockDataSet(adapter_type.blacklist);
return window.navigator.bluetooth.requestDevice({
filters: [{services: [device_information.name]}]
})
.then(device => device.gatt.connect())
.then(gattServer => gattServer.getPrimaryService(device_information.name))
.then(service => promise_rejects(t, 'SecurityError', service.getCharacteristic(serial_number_string.name)));
}, 'Serial Number String characteristic is blacklisted.');
</script>

View file

@ -0,0 +1,32 @@
<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/bluetooth/bluetooth-helpers.js"></script>
<script>
'use strict';
promise_test(() => {
window.testRunner.setBluetoothMockDataSet(adapter_type.heart_rate);
return window.navigator.bluetooth.requestDevice({
filters: [{services: [heart_rate.name]}],
optionalServices: [generic_access.name]
})
.then(device => device.gatt.connect())
.then(gattServer => gattServer.getPrimaryService(generic_access.name))
.then(service => {
return Promise.all([
service.getCharacteristic(device_name.alias),
service.getCharacteristic(device_name.name),
service.getCharacteristic(device_name.uuid)])
.then(characteristics => {
characteristics.forEach(characteristic => {
assert_equals(
characteristic.uuid, device_name.uuid,
'Characteristic UUID should be the same as requested UUID.');
assert_equals(
characteristic.service, service,
'Characteristic service should be the same as service.');
});
});
});
}, 'Request for characteristic. Should return right characteristic');
</script>

View file

@ -0,0 +1,17 @@
<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/bluetooth/bluetooth-helpers.js"></script>
<script>
'use strict';
promise_test(t => {
window.testRunner.setBluetoothMockDataSet(adapter_type.heart_rate);
return window.navigator.bluetooth.requestDevice({
filters: [{services: [heart_rate.name]}],
optionalServices: [generic_access.name]
})
.then(device => device.gatt.connect())
.then(gattServer => gattServer.getPrimaryService(generic_access.name))
.then(service => promise_rejects(t, 'NotFoundError', service.getCharacteristic(battery_level.name)));
}, 'Request for absent characteristic. Reject with NotFoundError.');
</script>

View file

@ -0,0 +1,20 @@
<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/bluetooth/bluetooth-helpers.js"></script>
<script>
'use strict';
promise_test(t => {
window.testRunner.setBluetoothMockDataSet(adapter_type.heart_rate);
return window.navigator.bluetooth.requestDevice({
filters: [{services: [heart_rate.name]}],
optionalServices: [generic_access.name]
})
.then(device => device.gatt.connect())
.then(gattServer => gattServer.getPrimaryService(generic_access.name))
.then(service => {
window.testRunner.setBluetoothMockDataSet(adapter_type.empty);
return promise_rejects(t, 'NetworkError', service.getCharacteristic(device_name.uuid));
});
}, 'Device goes out of range. Reject with NetworkError.');
</script>

View file

@ -0,0 +1,22 @@
<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/bluetooth/bluetooth-helpers.js"></script>
<script>
'use strict';
promise_test(t => {
window.testRunner.setBluetoothMockDataSet(adapter_type.heart_rate);
return window.navigator.bluetooth.requestDevice({
filters: [{services: [heart_rate.name]}],
optionalServices: [generic_access.name]
})
.then(device => device.gatt.connect())
.then(gattServer => {
return gattServer.getPrimaryService(generic_access.name)
.then(service => {
gattServer.disconnect();
return promise_rejects(t, 'NetworkError', service.getCharacteristic(device_name.uuid));
});
});
}, 'disconnect() called before getCharacteristic. Reject with NetworkError.');
</script>

View file

@ -0,0 +1,23 @@
<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/bluetooth/bluetooth-helpers.js"></script>
<script>
'use strict';
promise_test(t => {
window.testRunner.setBluetoothMockDataSet(adapter_type.heart_rate);
return window.navigator.bluetooth.requestDevice({
filters: [{services: [heart_rate.name]}],
optionalServices: [generic_access.name]
})
.then(device => device.gatt.connect())
.then(gattServer => {
return gattServer.getPrimaryService(generic_access.name)
.then(service => {
let promise = promise_rejects(t, 'NetworkError', service.getCharacteristic(device_name.uuid));
gattServer.disconnect();
return promise;
});
});
}, 'disconnect() called during getCharacteristic. Reject with NetworkError.');
</script>

View file

@ -0,0 +1,27 @@
<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/bluetooth/bluetooth-helpers.js"></script>
<script>
'use strict';
promise_test(() => {
window.testRunner.setBluetoothMockDataSet(adapter_type.heart_rate);
return window.navigator.bluetooth.requestDevice({
filters: [{services: [heart_rate.name]}],
optionalServices: [generic_access.name]
})
.then(device => device.gatt.connect())
.then(gattServer => gattServer.getPrimaryService(generic_access.name))
.then(service => {
return Promise.all([
service.getCharacteristic(device_name.name),
service.getCharacteristic(device_name.name)])
.then(characteristics => {
for (let i = 1; i < characteristics.length; i++) {
assert_equals(characteristics[0], characteristics[i],
'Should return the same characteristic as the first call.');
}
});
});
}, 'Calls to get the same characteristic should return the same object.');
</script>

View file

@ -0,0 +1,17 @@
<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/bluetooth/bluetooth-helpers.js"></script>
<script>
'use strict';
promise_test(t => {
window.testRunner.setBluetoothMockDataSet(adapter_type.heart_rate);
return window.navigator.bluetooth.requestDevice({
filters: [{services: [heart_rate.name]}],
optionalServices: [generic_access.name]
})
.then(device => device.gatt.connect())
.then(gattServer => gattServer.getPrimaryService(generic_access.name))
.then(service => promise_rejects(t, 'SyntaxError', service.getCharacteristic(wrong.name)));
}, 'Wrong Characteristic name. Reject with SyntaxError.');
</script>

View file

@ -0,0 +1,20 @@
<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/bluetooth/bluetooth-helpers.js"></script>
<script>
'use strict';
promise_test(t => {
window.testRunner.setBluetoothMockDataSet(adapter_type.heart_rate);
return window.navigator.bluetooth.requestDevice({
filters: [{services: [heart_rate.name]}],
optionalServices: [generic_access.name]
})
.then(device => device.gatt.connect())
.then(gattServer => gattServer.getPrimaryService(generic_access.name))
.then(service => {
window.testRunner.setBluetoothMockDataSet(adapter_type.missing_service_heart_rate);
return promise_rejects(t, 'InvalidStateError', service.getCharacteristic(device_name.uuid));
});
}, 'Service is removed. Reject with InvalidStateError.');
</script>

Some files were not shown because too many files have changed in this diff Show more