Path: blob/main/src/vs/base/test/common/marshalling.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*--------------------------------------------------------------------------------------------*/4import assert from 'assert';5import { parse, stringify } from '../../common/marshalling.js';6import { URI } from '../../common/uri.js';7import { ensureNoDisposablesAreLeakedInTestSuite } from './utils.js';89suite('Marshalling', () => {1011ensureNoDisposablesAreLeakedInTestSuite();1213test('RegExp', () => {14const value = /foo/img;15const raw = stringify(value);16const clone = <RegExp>parse(raw);1718assert.strictEqual(value.source, clone.source);19assert.strictEqual(value.global, clone.global);20assert.strictEqual(value.ignoreCase, clone.ignoreCase);21assert.strictEqual(value.multiline, clone.multiline);22});2324test('URI', () => {25const value = URI.from({ scheme: 'file', authority: 'server', path: '/shares/c#files', query: 'q', fragment: 'f' });26const raw = stringify(value);27const clone = <URI>parse(raw);2829assert.strictEqual(value.scheme, clone.scheme);30assert.strictEqual(value.authority, clone.authority);31assert.strictEqual(value.path, clone.path);32assert.strictEqual(value.query, clone.query);33assert.strictEqual(value.fragment, clone.fragment);34});3536test('Bug 16793:# in folder name => mirror models get out of sync', () => {37const uri1 = URI.file('C:\\C#\\file.txt');38assert.strictEqual(parse(stringify(uri1)).toString(), uri1.toString());39});40});414243