2016-10-27 22:25:24 +00:00
<!doctype html>
< html >
< head >
< script src = "../../http/tests/inspector/resources/inspector-test.js" > < / script >
< script >
function test()
{
let suite = InspectorTest.createAsyncSuite("ResourceCollection");
function createResource(url, type) {
2018-10-06 00:20:54 +00:00
return new WI.Resource(url, {type});
2016-10-27 22:25:24 +00:00
}
function logResourceNames(collection) {
2018-05-04 23:56:10 +00:00
InspectorTest.log(Array.from(collection).map((resource) => resource.displayName));
2016-10-27 22:25:24 +00:00
}
suite.addTestCase({
2017-08-02 03:09:57 +00:00
name: "WI.ResourceCollection.verifierForType",
2016-10-27 22:25:24 +00:00
test(resolve, reject) {
2017-08-02 03:09:57 +00:00
let collection = new WI.ResourceCollection(WI.Resource.Type.Image);
2016-10-27 22:25:24 +00:00
collection.add(createResource("one"));
2017-08-02 03:09:57 +00:00
collection.add(createResource("two", WI.Resource.Type.Image));
2016-10-27 22:25:24 +00:00
collection.add(3);
logResourceNames(collection);
resolve();
}
});
suite.addTestCase({
2017-08-02 03:09:57 +00:00
name: "WI.ResourceCollection.prototype.resourceCollectionForType",
2016-10-27 22:25:24 +00:00
test(resolve, reject) {
2017-08-02 03:09:57 +00:00
let collection = new WI.ResourceCollection;
collection.add(createResource("one", WI.Resource.Type.Image));
2019-08-05 22:44:10 +00:00
collection.add(createResource("two", WI.Resource.Type.StyleSheet));
2017-08-02 03:09:57 +00:00
collection.add(createResource("three", WI.Resource.Type.Image));
collection.add(createResource("four", WI.Resource.Type.Document));
2019-08-05 22:44:10 +00:00
collection.add(createResource("five", WI.Resource.Type.StyleSheet));
2016-10-27 22:25:24 +00:00
2017-08-02 03:09:57 +00:00
logResourceNames(collection.resourceCollectionForType(WI.Resource.Type.Image));
2016-10-27 22:25:24 +00:00
2017-08-02 03:09:57 +00:00
let typedCollection = new WI.ResourceCollection(WI.Resource.Type.Image);
typedCollection.add(createResource("one", WI.Resource.Type.Image));
2019-08-05 22:44:10 +00:00
typedCollection.add(createResource("two", WI.Resource.Type.StyleSheet));
2017-08-02 03:09:57 +00:00
typedCollection.add(createResource("three", WI.Resource.Type.Image));
2016-10-27 22:25:24 +00:00
logResourceNames(typedCollection);
2017-08-02 03:09:57 +00:00
InspectorTest.expectEqual(typedCollection.resourceCollectionForType(WI.Resource.Type.Image), typedCollection, "resourceCollectionForType will return `this` if a type is specified.")
2016-10-27 22:25:24 +00:00
resolve();
}
});
suite.addTestCase({
2017-08-02 03:09:57 +00:00
name: "WI.ResourceCollection.prototype._resourceTypeDidChange",
2016-10-27 22:25:24 +00:00
test(resolve, reject) {
let imageResource = createResource("one");
2017-08-02 03:09:57 +00:00
let collection = new WI.ResourceCollection;
2016-10-27 22:25:24 +00:00
collection.add(imageResource);
logResourceNames(collection);
2017-08-02 03:09:57 +00:00
logResourceNames(collection.resourceCollectionForType(WI.Resource.Type.Image));
logResourceNames(collection.resourceCollectionForType(WI.Resource.Type.Other));
2016-10-27 22:25:24 +00:00
// Dispatch a type change.
2017-08-02 03:09:57 +00:00
imageResource._type = WI.Resource.Type.Image;
imageResource.dispatchEventToListeners(WI.Resource.Event.TypeDidChange, {oldType: WI.Resource.Type.Image});
2016-10-27 22:25:24 +00:00
logResourceNames(collection);
2017-08-02 03:09:57 +00:00
logResourceNames(collection.resourceCollectionForType(WI.Resource.Type.Image));
logResourceNames(collection.resourceCollectionForType(WI.Resource.Type.Other));
2016-10-27 22:25:24 +00:00
resolve();
}
});
suite.runTestCasesAndFinish();
}
< / script >
< / head >
< body onload = "runTest()" >
< p > Testing all methods of ResourceCollection.< / p >
< / body >
< / html >