Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/base/test/common/network.test.ts
3296 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import assert from 'assert';
7
import { FileAccess, Schemas } from '../../common/network.js';
8
import { isWeb } from '../../common/platform.js';
9
import { isEqual } from '../../common/resources.js';
10
import { URI } from '../../common/uri.js';
11
import { ensureNoDisposablesAreLeakedInTestSuite } from './utils.js';
12
13
suite('network', () => {
14
15
ensureNoDisposablesAreLeakedInTestSuite();
16
17
(isWeb ? test.skip : test)('FileAccess: URI (native)', () => {
18
19
// asCodeUri() & asFileUri(): simple, without authority
20
let originalFileUri = URI.file('network.test.ts');
21
let browserUri = FileAccess.uriToBrowserUri(originalFileUri);
22
assert.ok(browserUri.authority.length > 0);
23
let fileUri = FileAccess.uriToFileUri(browserUri);
24
assert.strictEqual(fileUri.authority.length, 0);
25
assert(isEqual(originalFileUri, fileUri));
26
27
// asCodeUri() & asFileUri(): with authority
28
originalFileUri = URI.file('network.test.ts').with({ authority: 'test-authority' });
29
browserUri = FileAccess.uriToBrowserUri(originalFileUri);
30
assert.strictEqual(browserUri.authority, originalFileUri.authority);
31
fileUri = FileAccess.uriToFileUri(browserUri);
32
assert(isEqual(originalFileUri, fileUri));
33
});
34
35
(isWeb ? test.skip : test)('FileAccess: moduleId (native)', () => {
36
const browserUri = FileAccess.asBrowserUri('vs/base/test/node/network.test');
37
assert.strictEqual(browserUri.scheme, Schemas.vscodeFileResource);
38
39
const fileUri = FileAccess.asFileUri('vs/base/test/node/network.test');
40
assert.strictEqual(fileUri.scheme, Schemas.file);
41
});
42
43
(isWeb ? test.skip : test)('FileAccess: query and fragment is dropped (native)', () => {
44
const originalFileUri = URI.file('network.test.ts').with({ query: 'foo=bar', fragment: 'something' });
45
const browserUri = FileAccess.uriToBrowserUri(originalFileUri);
46
assert.strictEqual(browserUri.query, '');
47
assert.strictEqual(browserUri.fragment, '');
48
});
49
50
(isWeb ? test.skip : test)('FileAccess: query and fragment is kept if URI is already of same scheme (native)', () => {
51
const originalFileUri = URI.file('network.test.ts').with({ query: 'foo=bar', fragment: 'something' });
52
const browserUri = FileAccess.uriToBrowserUri(originalFileUri.with({ scheme: Schemas.vscodeFileResource }));
53
assert.strictEqual(browserUri.query, 'foo=bar');
54
assert.strictEqual(browserUri.fragment, 'something');
55
56
const fileUri = FileAccess.uriToFileUri(originalFileUri);
57
assert.strictEqual(fileUri.query, 'foo=bar');
58
assert.strictEqual(fileUri.fragment, 'something');
59
});
60
61
(isWeb ? test.skip : test)('FileAccess: web', () => {
62
const originalHttpsUri = URI.file('network.test.ts').with({ scheme: 'https' });
63
const browserUri = FileAccess.uriToBrowserUri(originalHttpsUri);
64
assert.strictEqual(originalHttpsUri.toString(), browserUri.toString());
65
});
66
67
test('FileAccess: remote URIs', () => {
68
const originalRemoteUri = URI.file('network.test.ts').with({ scheme: Schemas.vscodeRemote });
69
const browserUri = FileAccess.uriToBrowserUri(originalRemoteUri);
70
assert.notStrictEqual(originalRemoteUri.scheme, browserUri.scheme);
71
});
72
});
73
74