blob: 0fb85dd96fd68cf329491ce92fedbd1c3f911943 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
* @fileoverview using private properties isn't a Closure violation in tests.
* @suppress {accessControls}
*/
NetworkTestRunner.resetProductRegistry = function() {
TestRunner.addResult('Cleared ProductRegistryImpl');
ProductRegistryImpl._productsByDomainHash.clear();
};
NetworkTestRunner.addProductRegistryEntry = function(domainPattern, productName, type) {
TestRunner.addResult('Adding entry: ' + domainPattern);
const wildCardPosition = domainPattern.indexOf('*');
let prefix = '';
if (wildCardPosition === -1) {
} else if (wildCardPosition === 0) {
prefix = '*';
console.assert(domainPattern.substr(1, 1) === '.', 'Domain pattern wildcard must be followed by \'.\'');
domainPattern = domainPattern.substr(2);
} else {
prefix = domainPattern.substr(0, wildCardPosition);
console.assert(
domainPattern.substr(wildCardPosition + 1, 1) === '.', 'Domain pattern wildcard must be followed by \'.\'');
domainPattern = domainPattern.substr(wildCardPosition + 2);
}
console.assert(domainPattern.indexOf('*') === -1, 'Domain pattern may only have 1 wildcard.');
const prefixes = {};
prefixes[prefix] = {product: 0, type: type};
ProductRegistryImpl.register(
[productName], [{hash: ProductRegistryImpl._hashForDomain(domainPattern), prefixes: prefixes}]);
};