| // Copyright 2019 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| const {assert} = chai; |
| |
| import {ResourceType, ResourceCategory} from '../../../../front_end/common/ResourceType.js'; |
| |
| describe('ResourceCategory class', () => { |
| it('is able to be instantiated successfully', () => { |
| const resourceCategory = new ResourceCategory('Test Title', 'Test Short Title'); |
| assert.equal(resourceCategory.title, 'Test Title', 'title is not correct'); |
| assert.equal(resourceCategory.shortTitle, 'Test Short Title', 'short title is not correct'); |
| }); |
| }); |
| |
| describe('ResourceType class', () => { |
| it('is able to be instantiated successfully', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('Type Test Name', 'Type Test Title', testResourceCategory, true); |
| assert.equal(resourceType.name(), 'Type Test Name', 'name was not set correctly'); |
| assert.equal(resourceType.title(), 'Type Test Title', 'title was not set correctly'); |
| assert.equal(resourceType.category().title, 'Category Test Title', 'category title was not set correctly'); |
| assert.equal( |
| resourceType.category().shortTitle, 'Category Test Short Title', 'category short title was not set correctly'); |
| assert.equal(resourceType.isTextType(), true, 'isTextType was not set correctly'); |
| }); |
| |
| it('is able to return a document resource from the string "text/html"', () => { |
| const result = ResourceType.fromMimeType('text/html'); |
| assert.instanceOf(result, ResourceType, 'result type is incorrect'); |
| assert.equal(result.name(), 'document', 'name was not set correctly'); |
| assert.equal(result.title(), 'Document', 'title was not set correctly'); |
| assert.equal(result.category().title, 'Documents', 'category title was not set correctly'); |
| assert.equal(result.category().shortTitle, 'Doc', 'category short title was not set correctly'); |
| assert.isTrue(result.isTextType(), 'isTextType was not set correctly'); |
| }); |
| |
| it('is able to return a stylesheet resource from the string "text/css"', () => { |
| const result = ResourceType.fromMimeType('text/css'); |
| assert.instanceOf(result, ResourceType, 'result type is incorrect'); |
| assert.equal(result.name(), 'stylesheet', 'name was not set correctly'); |
| assert.equal(result.title(), 'Stylesheet', 'title was not set correctly'); |
| assert.equal(result.category().title, 'Stylesheets', 'category title was not set correctly'); |
| assert.equal(result.category().shortTitle, 'CSS', 'category short title was not set correctly'); |
| assert.isTrue(result.isTextType(), 'isTextType was not set correctly'); |
| }); |
| |
| it('is able to return an image resource from the string "image/"', () => { |
| const result = ResourceType.fromMimeType('image/'); |
| assert.instanceOf(result, ResourceType, 'result type is incorrect'); |
| assert.equal(result.name(), 'image', 'name was not set correctly'); |
| assert.equal(result.title(), 'Image', 'title was not set correctly'); |
| assert.equal(result.category().title, 'Images', 'category title was not set correctly'); |
| assert.equal(result.category().shortTitle, 'Img', 'category short title was not set correctly'); |
| assert.isFalse(result.isTextType(), 'isTextType was not set correctly'); |
| }); |
| |
| it('is able to return a script resource from the string "text/"', () => { |
| const result = ResourceType.fromMimeType('text/'); |
| assert.instanceOf(result, ResourceType, 'result type is incorrect'); |
| assert.equal(result.name(), 'script', 'name was not set correctly'); |
| assert.equal(result.title(), 'Script', 'title was not set correctly'); |
| assert.equal(result.category().title, 'Scripts', 'category title was not set correctly'); |
| assert.equal(result.category().shortTitle, 'JS', 'category short title was not set correctly'); |
| assert.isTrue(result.isTextType(), 'isTextType was not set correctly'); |
| }); |
| |
| it('is able to return a font resource from the string "font"', () => { |
| const result = ResourceType.fromMimeType('font'); |
| assert.instanceOf(result, ResourceType, 'result type is incorrect'); |
| assert.equal(result.name(), 'font', 'name was not set correctly'); |
| assert.equal(result.title(), 'Font', 'title was not set correctly'); |
| assert.equal(result.category().title, 'Fonts', 'category title was not set correctly'); |
| assert.equal(result.category().shortTitle, 'Font', 'category short title was not set correctly'); |
| assert.isFalse(result.isTextType(), 'isTextType was not set correctly'); |
| }); |
| |
| it('is able to return a script resource from the string "script"', () => { |
| const result = ResourceType.fromMimeType('script'); |
| assert.instanceOf(result, ResourceType, 'result type is incorrect'); |
| assert.equal(result.name(), 'script', 'name was not set correctly'); |
| assert.equal(result.title(), 'Script', 'title was not set correctly'); |
| assert.equal(result.category().title, 'Scripts', 'category title was not set correctly'); |
| assert.equal(result.category().shortTitle, 'JS', 'category short title was not set correctly'); |
| assert.isTrue(result.isTextType(), 'isTextType was not set correctly'); |
| }); |
| |
| it('is able to return an octet resource from the string "octet"', () => { |
| const result = ResourceType.fromMimeType('octet'); |
| assert.instanceOf(result, ResourceType, 'result type is incorrect'); |
| assert.equal(result.name(), 'other', 'name was not set correctly'); |
| assert.equal(result.title(), 'Other', 'title was not set correctly'); |
| assert.equal(result.category().title, 'Other', 'category title was not set correctly'); |
| assert.equal(result.category().shortTitle, 'Other', 'category short title was not set correctly'); |
| assert.isFalse(result.isTextType(), 'isTextType was not set correctly'); |
| }); |
| |
| it('is able to return an application resource from the string "application"', () => { |
| const result = ResourceType.fromMimeType('application'); |
| assert.instanceOf(result, ResourceType, 'result type is incorrect'); |
| assert.equal(result.name(), 'script', 'name was not set correctly'); |
| assert.equal(result.title(), 'Script', 'title was not set correctly'); |
| assert.equal(result.category().title, 'Scripts', 'category title was not set correctly'); |
| assert.equal(result.category().shortTitle, 'JS', 'category short title was not set correctly'); |
| assert.isTrue(result.isTextType(), 'isTextType was not set correctly'); |
| }); |
| |
| it('is able to return a resource of type other from the string "test/resource"', () => { |
| const result = ResourceType.fromMimeType('test/resource'); |
| assert.instanceOf(result, ResourceType, 'result type is incorrect'); |
| assert.equal(result.name(), 'other', 'name was not set correctly'); |
| assert.equal(result.title(), 'Other', 'title was not set correctly'); |
| assert.equal(result.category().title, 'Other', 'category title was not set correctly'); |
| assert.equal(result.category().shortTitle, 'Other', 'category short title was not set correctly'); |
| assert.isFalse(result.isTextType(), 'isTextType was not set correctly'); |
| }); |
| |
| it('is able to return a resource type from a URL that contains a mapped extension', () => { |
| const result = ResourceType.fromURL('http://www.example.com/test/testFile.js'); |
| assert.instanceOf(result, ResourceType, 'result type is incorrect'); |
| assert.equal(result.name(), 'script', 'name was not set correctly'); |
| assert.equal(result.title(), 'Script', 'title was not set correctly'); |
| assert.equal(result.category().title, 'Scripts', 'category title was not set correctly'); |
| assert.equal(result.category().shortTitle, 'JS', 'category short title was not set correctly'); |
| assert.isTrue(result.isTextType(), 'isTextType was not set correctly'); |
| }); |
| |
| it('is able to return null from a URL that contains an unmapped extension', () => { |
| const result = ResourceType.fromURL('http://www.example.com/test/testFile.testExt'); |
| assert.isNull(result, 'result is not null'); |
| }); |
| |
| it('is able to return a resource type from a mapped name', () => { |
| const result = ResourceType.fromName('script'); |
| assert.instanceOf(result, ResourceType, 'result type is incorrect'); |
| assert.equal(result.name(), 'script', 'name was not set correctly'); |
| assert.equal(result.title(), 'Script', 'title was not set correctly'); |
| assert.equal(result.category().title, 'Scripts', 'category title was not set correctly'); |
| assert.equal(result.category().shortTitle, 'JS', 'category short title was not set correctly'); |
| assert.isTrue(result.isTextType(), 'isTextType was not set correctly'); |
| }); |
| |
| it('is able to return null from an unmapped name', () => { |
| const result = ResourceType.fromName('testName'); |
| assert.isNull(result, 'result is not null'); |
| }); |
| |
| it('is able to return a mime from URL that contains a mapped extension', () => { |
| const result = ResourceType.mimeFromURL('http://www.example.com/test/path.html'); |
| assert.equal(result, 'text/html', 'mime returned was not correct'); |
| }); |
| |
| it('is able to return a mime from URL that contains an unmapped extension', () => { |
| const result = ResourceType.mimeFromURL('http://www.example.com/test/path.testExt'); |
| assert.isUndefined(result, 'mime returned was not correct'); |
| }); |
| |
| it('is able to return a mime from URL that contains a mapped name', () => { |
| const result = ResourceType.mimeFromURL('http://www.example.com/test/Cakefile'); |
| assert.equal(result, 'text/x-coffeescript', 'mime returned was not correct'); |
| }); |
| |
| it('is able to return a mime from a mapped extension', () => { |
| const result = ResourceType.mimeFromExtension('html'); |
| assert.equal(result, 'text/html', 'mime returned was not correct'); |
| }); |
| |
| it('is able to return a mime from an unmapped extension', () => { |
| const result = ResourceType.mimeFromExtension('testExt'); |
| assert.isUndefined(result, 'mime returned was not correct'); |
| }); |
| |
| it('is able to return its title successfully', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('Type Test Name', 'Type Test Title', testResourceCategory, true); |
| assert.equal(resourceType.title(), 'Type Test Title', 'title was not returned correctly'); |
| }); |
| |
| it('is able to return its isTextType value successfully', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('Type Test Name', 'Type Test Title', testResourceCategory, true); |
| assert.isTrue(resourceType.isTextType(), 'isTextType was not returned correctly'); |
| }); |
| |
| it('is able to return whether or not its a script if its name equals the value "script"', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('script', 'Type Test Title', testResourceCategory, true); |
| assert.isTrue(resourceType.isScript(), 'the resource should be considered as a script'); |
| }); |
| |
| it('is able to return whether or not its a script if its name equals the value "sm-script"', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('sm-script', 'Type Test Title', testResourceCategory, true); |
| assert.isTrue(resourceType.isScript(), 'the resource should be considered as a script'); |
| }); |
| |
| it('is able to return whether or not its a script if its name is not equal to the values "script" or "sm-script"', |
| () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('Type Test Name', 'Type Test Title', testResourceCategory, true); |
| assert.isFalse(resourceType.isScript(), 'the resource should not be considered as a script'); |
| }); |
| |
| it('is able to return whether or not its a document if its name equals the value "document"', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('document', 'Type Test Title', testResourceCategory, true); |
| assert.isTrue(resourceType.isDocument(), 'the resource should be considered as a document'); |
| }); |
| |
| it('is able to return whether or not its a document if its name does not equal the value "document"', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('Type Test Name', 'Type Test Title', testResourceCategory, true); |
| assert.isFalse(resourceType.isDocument(), 'the resource should not be considered as a document'); |
| }); |
| |
| it('is able to determine if a resource has scripts if it is a script', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('script', 'Type Test Title', testResourceCategory, true); |
| assert.isTrue(resourceType.hasScripts(), 'the resource should be considered as a having scripts'); |
| }); |
| |
| it('is able to determine if a resource has scripts if it is a document', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('document', 'Type Test Title', testResourceCategory, true); |
| assert.isTrue(resourceType.hasScripts(), 'the resource should be considered as a having scripts'); |
| }); |
| |
| it('is able to determine if a resource has scripts if it is not a script or a document', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('Type Test Name', 'Type Test Title', testResourceCategory, true); |
| assert.isFalse(resourceType.hasScripts(), 'the resource should not be considered as a having scripts'); |
| }); |
| |
| it('is able to return whether or not its a stylesheet if its name equals the value "stylesheet"', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('stylesheet', 'Type Test Title', testResourceCategory, true); |
| assert.isTrue(resourceType.isStyleSheet(), 'the resource should be considered as a stylesheet'); |
| }); |
| |
| it('is able to return whether or not its a stylesheet if its name equals the value "sm-stylesheet"', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('sm-stylesheet', 'Type Test Title', testResourceCategory, true); |
| assert.isTrue(resourceType.isStyleSheet(), 'the resource should be considered as a stylesheet'); |
| }); |
| |
| it('is able to return whether or not its a stylesheet if its name is not equal to the values "stylesheet" or "sm-stylesheet"', |
| () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('Type Test Name', 'Type Test Title', testResourceCategory, true); |
| assert.isFalse(resourceType.isStyleSheet(), 'the resource should not be considered as a stylesheet'); |
| }); |
| |
| it('is able to return whether it is a document, a script or a stylesheet if it was a document', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('document', 'Type Test Title', testResourceCategory, true); |
| assert.isTrue(resourceType.isDocumentOrScriptOrStyleSheet(), 'the resource should be considered as a document'); |
| }); |
| |
| it('is able to return whether it is a document, a script or a stylesheet if it was a script', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('script', 'Type Test Title', testResourceCategory, true); |
| assert.isTrue(resourceType.isDocumentOrScriptOrStyleSheet(), 'the resource should be considered as a script'); |
| }); |
| |
| it('is able to return whether it is a document, a script or a stylesheet if it was a stylesheet', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('stylesheet', 'Type Test Title', testResourceCategory, true); |
| assert.isTrue(resourceType.isDocumentOrScriptOrStyleSheet(), 'the resource should be considered as a stylesheet'); |
| }); |
| |
| it('is able to return whether it is a document, a script or a stylesheet if it was none of those things', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('Type Test Name', 'Type Test Title', testResourceCategory, true); |
| assert.isFalse( |
| resourceType.isDocumentOrScriptOrStyleSheet(), |
| 'the resource should be considered as a doucment, a script or a stylesheet'); |
| }); |
| |
| it('is able to determine if it is from source map if it began with "sm-"', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('sm-Type Test Name', 'Type Test Title', testResourceCategory, true); |
| assert.isTrue(resourceType.isFromSourceMap(), 'the resource should be considered to be from source map'); |
| }); |
| |
| it('is able to determine if it is from source map if it did not begin with "sm-"', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('Type Test Name', 'Type Test Title', testResourceCategory, true); |
| assert.isFalse(resourceType.isFromSourceMap(), 'the resource should not be considered to be from source map'); |
| }); |
| |
| it('is able to be converted to a string by returning its name', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('Type Test Name', 'Type Test Title', testResourceCategory, true); |
| assert.equal( |
| resourceType.toString(), 'Type Test Name', 'the resource type was not converted to a string correctly'); |
| }); |
| |
| it('is able to return the canonical mime type of a document', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('document', 'Type Test Title', testResourceCategory, true); |
| assert.equal(resourceType.canonicalMimeType(), 'text/html', 'the canonical mime type was not returned correctly'); |
| }); |
| |
| it('is able to return the canonical mime type of a script', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('script', 'Type Test Title', testResourceCategory, true); |
| assert.equal( |
| resourceType.canonicalMimeType(), 'text/javascript', 'the canonical mime type was not returned correctly'); |
| }); |
| |
| it('is able to return the canonical mime type of a stylesheet', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('stylesheet', 'Type Test Title', testResourceCategory, true); |
| assert.equal(resourceType.canonicalMimeType(), 'text/css', 'the canonical mime type was not returned correctly'); |
| }); |
| |
| it('returns an empty string as a canonical mime type if it was not a document, a script or a stylesheet', () => { |
| const testResourceCategory = new ResourceCategory('Category Test Title', 'Category Test Short Title'); |
| const resourceType = new ResourceType('Type Test Name', 'Type Test Title', testResourceCategory, true); |
| assert.equal(resourceType.canonicalMimeType(), '', 'the canonical mime type was not returned correctly'); |
| }); |
| }); |