Path: blob/main/src/vs/base/test/common/network.test.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import assert from 'assert';6import { FileAccess, Schemas } from '../../common/network.js';7import { isWeb } from '../../common/platform.js';8import { isEqual } from '../../common/resources.js';9import { URI } from '../../common/uri.js';10import { ensureNoDisposablesAreLeakedInTestSuite } from './utils.js';1112suite('network', () => {1314ensureNoDisposablesAreLeakedInTestSuite();1516(isWeb ? test.skip : test)('FileAccess: URI (native)', () => {1718// asCodeUri() & asFileUri(): simple, without authority19let originalFileUri = URI.file('network.test.ts');20let browserUri = FileAccess.uriToBrowserUri(originalFileUri);21assert.ok(browserUri.authority.length > 0);22let fileUri = FileAccess.uriToFileUri(browserUri);23assert.strictEqual(fileUri.authority.length, 0);24assert(isEqual(originalFileUri, fileUri));2526// asCodeUri() & asFileUri(): with authority27originalFileUri = URI.file('network.test.ts').with({ authority: 'test-authority' });28browserUri = FileAccess.uriToBrowserUri(originalFileUri);29assert.strictEqual(browserUri.authority, originalFileUri.authority);30fileUri = FileAccess.uriToFileUri(browserUri);31assert(isEqual(originalFileUri, fileUri));32});3334(isWeb ? test.skip : test)('FileAccess: moduleId (native)', () => {35const browserUri = FileAccess.asBrowserUri('vs/base/test/node/network.test');36assert.strictEqual(browserUri.scheme, Schemas.vscodeFileResource);3738const fileUri = FileAccess.asFileUri('vs/base/test/node/network.test');39assert.strictEqual(fileUri.scheme, Schemas.file);40});4142(isWeb ? test.skip : test)('FileAccess: query and fragment is dropped (native)', () => {43const originalFileUri = URI.file('network.test.ts').with({ query: 'foo=bar', fragment: 'something' });44const browserUri = FileAccess.uriToBrowserUri(originalFileUri);45assert.strictEqual(browserUri.query, '');46assert.strictEqual(browserUri.fragment, '');47});4849(isWeb ? test.skip : test)('FileAccess: query and fragment is kept if URI is already of same scheme (native)', () => {50const originalFileUri = URI.file('network.test.ts').with({ query: 'foo=bar', fragment: 'something' });51const browserUri = FileAccess.uriToBrowserUri(originalFileUri.with({ scheme: Schemas.vscodeFileResource }));52assert.strictEqual(browserUri.query, 'foo=bar');53assert.strictEqual(browserUri.fragment, 'something');5455const fileUri = FileAccess.uriToFileUri(originalFileUri);56assert.strictEqual(fileUri.query, 'foo=bar');57assert.strictEqual(fileUri.fragment, 'something');58});5960(isWeb ? test.skip : test)('FileAccess: web', () => {61const originalHttpsUri = URI.file('network.test.ts').with({ scheme: 'https' });62const browserUri = FileAccess.uriToBrowserUri(originalHttpsUri);63assert.strictEqual(originalHttpsUri.toString(), browserUri.toString());64});6566test('FileAccess: remote URIs', () => {67const originalRemoteUri = URI.file('network.test.ts').with({ scheme: Schemas.vscodeRemote });68const browserUri = FileAccess.uriToBrowserUri(originalRemoteUri);69assert.notStrictEqual(originalRemoteUri.scheme, browserUri.scheme);70});71});727374