Add more unit tests for NotebookInput (#8654)

This commit is contained in:
Cory Rivera
2019-12-12 14:59:56 -08:00
committed by GitHub
parent 6638db1f35
commit 866bfc61ba
8 changed files with 419 additions and 90 deletions

View File

@@ -1,60 +0,0 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { INotebookEditor, INotebookSection, INotebookParams } from 'sql/workbench/services/notebook/browser/notebookService';
import { ICellModel, INotebookModel } from 'sql/workbench/contrib/notebook/browser/models/modelInterfaces';
import { ISingleNotebookEditOperation } from 'sql/workbench/api/common/sqlExtHostTypes';
import { CellType } from 'sql/workbench/contrib/notebook/common/models/contracts';
export class NotebookComponentStub implements INotebookEditor {
get notebookParams(): INotebookParams {
throw new Error('Method not implemented.');
}
get id(): string {
throw new Error('Method not implemented.');
}
get cells(): ICellModel[] {
throw new Error('Method not implemented.');
}
get modelReady(): Promise<INotebookModel> {
throw new Error('Method not implemented.');
}
get model(): INotebookModel {
throw new Error('Method not implemented.');
}
isDirty(): boolean {
throw new Error('Method not implemented.');
}
isActive(): boolean {
throw new Error('Method not implemented.');
}
isVisible(): boolean {
throw new Error('Method not implemented.');
}
executeEdits(edits: ISingleNotebookEditOperation[]): boolean {
throw new Error('Method not implemented.');
}
runCell(cell: ICellModel): Promise<boolean> {
throw new Error('Method not implemented.');
}
runAllCells(startCell?: ICellModel, endCell?: ICellModel): Promise<boolean> {
throw new Error('Method not implemented.');
}
clearOutput(cell: ICellModel): Promise<boolean> {
throw new Error('Method not implemented.');
}
clearAllOutputs(): Promise<boolean> {
throw new Error('Method not implemented.');
}
getSections(): INotebookSection[] {
throw new Error('Method not implemented.');
}
navigateToSection(sectionId: string): void {
throw new Error('Method not implemented.');
}
addCell(cellType: CellType, index?: number, event?: Event) {
throw new Error('Method not implemented.');
}
}

View File

@@ -9,12 +9,12 @@ import * as assert from 'assert';
import { AddCellAction, ClearAllOutputsAction, CollapseCellsAction, TrustedAction, RunAllCellsAction, NewNotebookAction } from 'sql/workbench/contrib/notebook/browser/notebookActions';
import { CellType } from 'sql/workbench/contrib/notebook/common/models/contracts';
import { INotebookEditor } from 'sql/workbench/services/notebook/browser/notebookService';
import { NotebookComponentStub } from 'sql/workbench/contrib/notebook/test/browser/common';
import { ICellModel, INotebookModel } from 'sql/workbench/contrib/notebook/browser/models/modelInterfaces';
import { INotificationService } from 'vs/platform/notification/common/notification';
import { TestNotificationService } from 'vs/platform/notification/test/common/testNotificationService';
import { ICommandService } from 'vs/platform/commands/common/commands';
import { TestCommandService } from 'vs/editor/test/browser/editorTestServices';
import { NotebookComponentStub } from 'sql/workbench/contrib/notebook/test/stubs';
suite('Notebook Actions', function (): void {
test('Add Cell Action', async function (): Promise<void> {

View File

@@ -0,0 +1,174 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as TypeMoq from 'typemoq';
import * as assert from 'assert';
import { nb } from 'azdata';
import { workbenchInstantiationService } from 'vs/workbench/test/workbenchTestServices';
import { Schemas } from 'vs/base/common/network';
import { URI } from 'vs/base/common/uri';
import { UntitledNotebookInput } from 'sql/workbench/contrib/notebook/common/models/untitledNotebookInput';
import { FileNotebookInput } from 'sql/workbench/contrib/notebook/common/models/fileNotebookInput';
import { IConnectionProfile } from 'sql/platform/connection/common/interfaces';
import { UntitledTextEditorModel } from 'vs/workbench/common/editor/untitledTextEditorModel';
import { NodeStub, NotebookServiceStub } from 'sql/workbench/contrib/notebook/test/stubs';
import { basenameOrAuthority } from 'vs/base/common/resources';
import { UntitledTextEditorInput } from 'vs/workbench/common/editor/untitledTextEditorInput';
import { SimpleUriLabelService } from 'vs/editor/standalone/browser/simpleServices';
import { IExtensionService, NullExtensionService } from 'vs/workbench/services/extensions/common/extensions';
import { INotebookService, IProviderInfo } from 'sql/workbench/services/notebook/browser/notebookService';
suite('Notebook Input', function (): void {
const instantiationService = workbenchInstantiationService();
const testTitle = 'TestTitle';
const testProvider = 'TestProvider';
const untitledUri = URI.from({ scheme: Schemas.untitled, path: 'TestPath' });
const mockExtensionService = TypeMoq.Mock.ofType<IExtensionService>(NullExtensionService);
mockExtensionService.setup(s => s.whenInstalledExtensionsRegistered()).returns(() => Promise.resolve(true));
const mockNotebookService = TypeMoq.Mock.ofType<INotebookService>(NotebookServiceStub);
mockNotebookService.setup(s => s.getProvidersForFileType(TypeMoq.It.isAny())).returns(() => [testProvider]);
mockNotebookService.setup(s => s.getStandardKernelsForProvider(TypeMoq.It.isAny())).returns(() => {
return [{
name: 'TestName',
displayName: 'TestDisplayName',
connectionProviderIds: ['TestId'],
notebookProvider: 'TestProvider'
}];
});
let untitledTextInput: UntitledTextEditorInput;
let untitledNotebookInput: UntitledNotebookInput;
setup(() => {
untitledTextInput = new UntitledTextEditorInput(untitledUri, false, '', '', '', instantiationService, undefined, new SimpleUriLabelService(), undefined, undefined, undefined);
untitledNotebookInput = new UntitledNotebookInput(
testTitle, untitledUri, untitledTextInput,
undefined, instantiationService, mockNotebookService.object, mockExtensionService.object);
});
test('File Notebook Input', async function (): Promise<void> {
let fileUri = URI.from({ scheme: Schemas.file, path: 'TestPath' });
let fileNotebookInput = new FileNotebookInput(
testTitle, fileUri, undefined,
undefined, instantiationService, mockNotebookService.object, mockExtensionService.object);
let inputId = fileNotebookInput.getTypeId();
assert.strictEqual(inputId, FileNotebookInput.ID);
assert.strictEqual(fileNotebookInput.isUntitled(), false, 'File Input should not be untitled');
});
test('Untitled Notebook Input', async function (): Promise<void> {
let inputId = untitledNotebookInput.getTypeId();
assert.strictEqual(inputId, UntitledNotebookInput.ID);
assert.ok(untitledNotebookInput.isUntitled(), 'Untitled Input should be untitled');
});
test('Getters and Setters', async function (): Promise<void> {
// Input title
assert.strictEqual(untitledNotebookInput.getTitle(), testTitle);
let noTitleInput = instantiationService.createInstance(UntitledNotebookInput, undefined, untitledUri, undefined);
assert.strictEqual(noTitleInput.getTitle(), basenameOrAuthority(untitledUri));
// Text Input
assert.strictEqual(untitledNotebookInput.textInput, untitledTextInput);
// Notebook URI
assert.deepStrictEqual(untitledNotebookInput.notebookUri, untitledUri);
// Content Manager
assert.notStrictEqual(untitledNotebookInput.editorOpenedTimestamp, undefined);
// Notebook editor timestamp
assert.notStrictEqual(untitledNotebookInput.contentManager, undefined);
// Layout changed event
assert.notStrictEqual(untitledNotebookInput.layoutChanged, undefined);
// Connection Profile
let testProfile = <IConnectionProfile>{};
untitledNotebookInput.connectionProfile = testProfile;
assert.strictEqual(untitledNotebookInput.connectionProfile, testProfile);
// Default Kernel
let testDefaultKernel: nb.IKernelSpec = {
name: 'TestName',
language: 'TestLanguage',
display_name: 'TestDisplayName'
};
untitledNotebookInput.defaultKernel = testDefaultKernel;
assert.strictEqual(untitledNotebookInput.defaultKernel, testDefaultKernel);
// Untitled Editor Model
let testModel = <UntitledTextEditorModel>{};
untitledNotebookInput.untitledEditorModel = testModel;
assert.strictEqual(untitledNotebookInput.untitledEditorModel, testModel);
// getResource
assert.strictEqual(untitledNotebookInput.getResource(), untitledUri);
// Standard kernels
let testKernels = [{
name: 'TestName1',
displayName: 'TestDisplayName1',
connectionProviderIds: ['TestId1'],
notebookProvider: 'TestProvider'
}, {
name: 'TestName2',
displayName: 'TestDisplayName2',
connectionProviderIds: ['TestId2'],
notebookProvider: 'TestProvider'
}];
untitledNotebookInput.standardKernels = testKernels;
assert.deepStrictEqual(untitledNotebookInput.standardKernels, testKernels);
// Provider Info
let provider = await untitledNotebookInput.getProviderInfo();
assert.deepStrictEqual(provider, <IProviderInfo>{
providerId: testProvider,
providers: [testProvider]
});
});
test('Parent container', async function (): Promise<void> {
// Undefined container
let testContainer = undefined;
untitledNotebookInput.container = testContainer;
assert.strictEqual(untitledNotebookInput.container, testContainer);
// Dispose old container when setting new one
let removedContainer: HTMLElement;
let mockParentNode = TypeMoq.Mock.ofType<Node>(NodeStub);
mockParentNode.setup(e => e.removeChild(TypeMoq.It.isAny())).returns(oldChild => {
removedContainer = oldChild;
return oldChild;
});
testContainer = <HTMLElement>{ parentNode: mockParentNode.object };
untitledNotebookInput.container = testContainer;
assert.strictEqual(untitledNotebookInput.container, testContainer);
let oldContainer = testContainer;
testContainer = <HTMLElement>{};
untitledNotebookInput.container = testContainer;
assert.strictEqual(untitledNotebookInput.container, testContainer);
mockParentNode.verify(e => e.removeChild(TypeMoq.It.isAny()), TypeMoq.Times.once());
assert.strictEqual(removedContainer, oldContainer);
});
test('Matches other input', async function (): Promise<void> {
assert.strictEqual(untitledNotebookInput.matches(undefined), false, 'Input should not match undefined.');
assert.ok(untitledNotebookInput.matches(untitledNotebookInput), 'Input should match itself.');
let otherTestUri = URI.from({ scheme: Schemas.untitled, path: 'OtherTestPath' });
let otherTextInput = new UntitledTextEditorInput(otherTestUri, false, '', '', '', instantiationService, undefined, new SimpleUriLabelService(), undefined, undefined, undefined);
let otherInput = instantiationService.createInstance(UntitledNotebookInput, 'OtherTestInput', otherTestUri, otherTextInput);
assert.strictEqual(untitledNotebookInput.matches(otherInput), false, 'Input should not match different input.');
});
});

View File

@@ -11,7 +11,7 @@ import * as objects from 'vs/base/common/objects';
import { CellTypes } from 'sql/workbench/contrib/notebook/common/models/contracts';
import { ModelFactory } from 'sql/workbench/contrib/notebook/browser/models/modelFactory';
import { NotebookModelStub, ClientSessionStub, KernelStub, FutureStub } from './common';
import { NotebookModelStub, ClientSessionStub, KernelStub, FutureStub } from 'sql/workbench/contrib/notebook/test/stubs';
import { EmptyFuture } from 'sql/workbench/services/notebook/browser/sessionManager';
import { ICellModel, ICellModelOptions, IClientSession, INotebookModel } from 'sql/workbench/contrib/notebook/browser/models/modelInterfaces';
import { Deferred } from 'sql/base/common/promise';

View File

@@ -13,7 +13,7 @@ import { URI } from 'vs/base/common/uri';
import { ClientSession } from 'sql/workbench/contrib/notebook/browser/models/clientSession';
import { SessionManager } from 'sql/workbench/services/notebook/browser/sessionManager';
import { NotebookManagerStub, ServerManagerStub } from './common';
import { NotebookManagerStub, ServerManagerStub } from 'sql/workbench/contrib/notebook/test/stubs';
import { isUndefinedOrNull } from 'vs/base/common/types';
suite('Client Session', function (): void {

View File

@@ -12,7 +12,7 @@ import { TestNotificationService } from 'vs/platform/notification/test/common/te
import { URI } from 'vs/base/common/uri';
import { LocalContentManager } from 'sql/workbench/services/notebook/common/localContentManager';
import { NotebookManagerStub } from './common';
import { NotebookManagerStub } from 'sql/workbench/contrib/notebook/test/stubs';
import { NotebookModel } from 'sql/workbench/contrib/notebook/browser/models/notebookModel';
import { ModelFactory } from 'sql/workbench/contrib/notebook/browser/models/modelFactory';
import { IClientSession, INotebookModelOptions, NotebookContentChange } from 'sql/workbench/contrib/notebook/browser/models/modelInterfaces';

View File

@@ -9,7 +9,7 @@ import * as TypeMoq from 'typemoq';
import { nb, ServerInfo } from 'azdata';
import { tryMatchCellMagic, getHostAndPortFromEndpoint, isStream, getProvidersForFileName, asyncForEach, clusterEndpointsProperty, getClusterEndpoints, RawEndpoint, IEndpoint, getStandardKernelsForProvider, IStandardKernelWithProvider } from 'sql/workbench/contrib/notebook/browser/models/notebookUtils';
import { INotebookService, DEFAULT_NOTEBOOK_FILETYPE, DEFAULT_NOTEBOOK_PROVIDER } from 'sql/workbench/services/notebook/browser/notebookService';
import { NotebookServiceStub } from 'sql/workbench/contrib/notebook/test/electron-browser/common';
import { NotebookServiceStub } from 'sql/workbench/contrib/notebook/test/stubs';
suite('notebookUtils', function (): void {
const mockNotebookService = TypeMoq.Mock.ofType<INotebookService>(NotebookServiceStub);

View File

@@ -5,13 +5,13 @@
import { nb, IConnectionProfile } from 'azdata';
import { Event, Emitter } from 'vs/base/common/event';
import * as vsEvent from 'vs/base/common/event';
import { INotebookModel, ICellModel, IClientSession, NotebookContentChange, IKernelPreference } from 'sql/workbench/contrib/notebook/browser/models/modelInterfaces';
import { NotebookChangeType, CellType } from 'sql/workbench/contrib/notebook/common/models/contracts';
import { INotebookManager, INotebookService, INotebookEditor, ILanguageMagic, INotebookProvider, INavigationProvider } from 'sql/workbench/services/notebook/browser/notebookService';
import { INotebookManager, INotebookService, INotebookEditor, ILanguageMagic, INotebookProvider, INavigationProvider, INotebookParams, INotebookSection } from 'sql/workbench/services/notebook/browser/notebookService';
import { ISingleNotebookEditOperation } from 'sql/workbench/api/common/sqlExtHostTypes';
import { IStandardKernelWithProvider } from 'sql/workbench/contrib/notebook/browser/models/notebookUtils';
import { URI } from 'vs/workbench/workbench.web.api';
import { URI, Emitter } from 'vs/workbench/workbench.web.api';
import { RenderMimeRegistry } from 'sql/workbench/contrib/notebook/browser/outputs/registry';
import { ConnectionProfile } from 'sql/platform/connection/common/connectionProfile';
@@ -40,25 +40,25 @@ export class NotebookModelStub implements INotebookModel {
get notebookManagers(): INotebookManager[] {
throw new Error('method not implemented.');
}
get kernelChanged(): Event<nb.IKernelChangedArgs> {
get kernelChanged(): vsEvent.Event<nb.IKernelChangedArgs> {
throw new Error('method not implemented.');
}
get kernelsChanged(): Event<nb.IKernelSpec> {
get kernelsChanged(): vsEvent.Event<nb.IKernelSpec> {
throw new Error('method not implemented.');
}
get layoutChanged(): Event<void> {
get layoutChanged(): vsEvent.Event<void> {
throw new Error('method not implemented.');
}
get defaultKernel(): nb.IKernelSpec {
throw new Error('method not implemented.');
}
get contextsChanged(): Event<void> {
get contextsChanged(): vsEvent.Event<void> {
throw new Error('method not implemented.');
}
get contextsLoading(): Event<void> {
get contextsLoading(): vsEvent.Event<void> {
throw new Error('method not implemented.');
}
get contentChanged(): Event<NotebookContentChange> {
get contentChanged(): vsEvent.Event<NotebookContentChange> {
throw new Error('method not implemented.');
}
get specs(): nb.IAllKernels {
@@ -97,10 +97,10 @@ export class NotebookModelStub implements INotebookModel {
getApplicableConnectionProviderIds(kernelName: string): string[] {
throw new Error('Method not implemented.');
}
get onValidConnectionSelected(): Event<boolean> {
get onValidConnectionSelected(): vsEvent.Event<boolean> {
throw new Error('method not implemented.');
}
get onProviderIdChange(): Event<string> {
get onProviderIdChange(): vsEvent.Event<string> {
throw new Error('method not impelemented.');
}
toJSON(): nb.INotebookContents {
@@ -109,7 +109,7 @@ export class NotebookModelStub implements INotebookModel {
serializationStateChanged(changeType: NotebookChangeType): void {
throw new Error('Method not implemented.');
}
get onActiveCellChanged(): Event<ICellModel> {
get onActiveCellChanged(): vsEvent.Event<ICellModel> {
throw new Error('Method not implemented.');
}
updateActiveCell(cell: ICellModel) {
@@ -129,7 +129,7 @@ export class NotebookManagerStub implements INotebookManager {
export class ServerManagerStub implements nb.ServerManager {
onServerStartedEmitter = new Emitter<void>();
onServerStarted: Event<void> = this.onServerStartedEmitter.event;
onServerStarted: vsEvent.Event<void> = this.onServerStartedEmitter.event;
isStarted: boolean = false;
calledStart: boolean = false;
calledEnd: boolean = false;
@@ -147,12 +147,24 @@ export class ServerManagerStub implements nb.ServerManager {
export class NotebookServiceStub implements INotebookService {
_serviceBrand: undefined;
onNotebookEditorAdd: Event<INotebookEditor>;
onNotebookEditorRemove: Event<INotebookEditor>;
onNotebookEditorRename: Event<INotebookEditor>;
isRegistrationComplete: boolean;
registrationComplete: Promise<void>;
languageMagics: ILanguageMagic[];
get onNotebookEditorAdd(): vsEvent.Event<INotebookEditor> {
throw new Error('Method not implemented.');
}
get onNotebookEditorRemove(): vsEvent.Event<INotebookEditor> {
throw new Error('Method not implemented.');
}
get onNotebookEditorRename(): vsEvent.Event<INotebookEditor> {
throw new Error('Method not implemented.');
}
get isRegistrationComplete(): boolean {
throw new Error('Method not implemented.');
}
get registrationComplete(): Promise<void> {
throw new Error('Method not implemented.');
}
get languageMagics(): ILanguageMagic[] {
throw new Error('Method not implemented.');
}
registerProvider(providerId: string, provider: INotebookProvider): void {
throw new Error('Method not implemented.');
}
@@ -243,22 +255,22 @@ export class ClientSessionStub implements IClientSession {
dispose(): void {
throw new Error('Method not implemented.');
}
get terminated(): Event<void> {
get terminated(): vsEvent.Event<void> {
throw new Error('Method not implemented.');
}
get kernelChanged(): Event<nb.IKernelChangedArgs> {
get kernelChanged(): vsEvent.Event<nb.IKernelChangedArgs> {
throw new Error('Method not implemented.');
}
get statusChanged(): Event<nb.ISession> {
get statusChanged(): vsEvent.Event<nb.ISession> {
throw new Error('Method not implemented.');
}
get iopubMessage(): Event<nb.IMessage> {
get iopubMessage(): vsEvent.Event<nb.IMessage> {
throw new Error('Method not implemented.');
}
get unhandledMessage(): Event<nb.IMessage> {
get unhandledMessage(): vsEvent.Event<nb.IMessage> {
throw new Error('Method not implemented.');
}
get propertyChanged(): Event<'path' | 'name' | 'type'> {
get propertyChanged(): vsEvent.Event<'path' | 'name' | 'type'> {
throw new Error('Method not implemented.');
}
get kernel(): nb.IKernel | null {
@@ -372,3 +384,206 @@ export class FutureStub implements nb.IFuture {
return;
}
}
export class NotebookComponentStub implements INotebookEditor {
get notebookParams(): INotebookParams {
throw new Error('Method not implemented.');
}
get id(): string {
throw new Error('Method not implemented.');
}
get cells(): ICellModel[] {
throw new Error('Method not implemented.');
}
get modelReady(): Promise<INotebookModel> {
throw new Error('Method not implemented.');
}
get model(): INotebookModel {
throw new Error('Method not implemented.');
}
isDirty(): boolean {
throw new Error('Method not implemented.');
}
isActive(): boolean {
throw new Error('Method not implemented.');
}
isVisible(): boolean {
throw new Error('Method not implemented.');
}
executeEdits(edits: ISingleNotebookEditOperation[]): boolean {
throw new Error('Method not implemented.');
}
runCell(cell: ICellModel): Promise<boolean> {
throw new Error('Method not implemented.');
}
runAllCells(startCell?: ICellModel, endCell?: ICellModel): Promise<boolean> {
throw new Error('Method not implemented.');
}
clearOutput(cell: ICellModel): Promise<boolean> {
throw new Error('Method not implemented.');
}
clearAllOutputs(): Promise<boolean> {
throw new Error('Method not implemented.');
}
getSections(): INotebookSection[] {
throw new Error('Method not implemented.');
}
navigateToSection(sectionId: string): void {
throw new Error('Method not implemented.');
}
addCell(cellType: CellType, index?: number, event?: Event) {
throw new Error('Method not implemented.');
}
}
export class NodeStub implements Node {
get baseURI(): string {
throw new Error('Method not implemented.');
}
get childNodes(): NodeListOf<ChildNode> {
throw new Error('Method not implemented.');
}
get firstChild(): ChildNode {
throw new Error('Method not implemented.');
}
get isConnected(): boolean {
throw new Error('Method not implemented.');
}
get lastChild(): ChildNode {
throw new Error('Method not implemented.');
}
get namespaceURI(): string {
throw new Error('Method not implemented.');
}
get nextSibling(): ChildNode {
throw new Error('Method not implemented.');
}
get nodeName(): string {
throw new Error('Method not implemented.');
}
get nodeType(): number {
throw new Error('Method not implemented.');
}
get ownerDocument(): Document {
throw new Error('Method not implemented.');
}
get parentElement(): HTMLElement {
throw new Error('Method not implemented.');
}
get parentNode(): Node & ParentNode {
throw new Error('Method not implemented.');
}
get previousSibling(): Node {
throw new Error('Method not implemented.');
}
nodeValue: string;
textContent: string;
appendChild<T extends Node>(newChild: T): T {
throw new Error('Method not implemented.');
}
cloneNode(deep?: boolean): Node {
throw new Error('Method not implemented.');
}
compareDocumentPosition(other: Node): number {
throw new Error('Method not implemented.');
}
contains(other: Node): boolean {
throw new Error('Method not implemented.');
}
getRootNode(options?: GetRootNodeOptions): Node {
throw new Error('Method not implemented.');
}
hasChildNodes(): boolean {
throw new Error('Method not implemented.');
}
insertBefore<T extends Node>(newChild: T, refChild: Node): T {
throw new Error('Method not implemented.');
}
isDefaultNamespace(namespace: string): boolean {
throw new Error('Method not implemented.');
}
isEqualNode(otherNode: Node): boolean {
throw new Error('Method not implemented.');
}
isSameNode(otherNode: Node): boolean {
throw new Error('Method not implemented.');
}
lookupNamespaceURI(prefix: string): string {
throw new Error('Method not implemented.');
}
lookupPrefix(namespace: string): string {
throw new Error('Method not implemented.');
}
normalize(): void {
throw new Error('Method not implemented.');
}
removeChild<T extends Node>(oldChild: T): T {
throw new Error('Method not implemented.');
}
replaceChild<T extends Node>(newChild: Node, oldChild: T): T {
throw new Error('Method not implemented.');
}
get ATTRIBUTE_NODE(): number {
throw new Error('Method not implemented.');
}
get CDATA_SECTION_NODE(): number {
throw new Error('Method not implemented.');
}
get COMMENT_NODE(): number {
throw new Error('Method not implemented.');
}
get DOCUMENT_FRAGMENT_NODE(): number {
throw new Error('Method not implemented.');
}
get DOCUMENT_NODE(): number {
throw new Error('Method not implemented.');
}
get DOCUMENT_POSITION_CONTAINED_BY(): number {
throw new Error('Method not implemented.');
}
get DOCUMENT_POSITION_CONTAINS(): number {
throw new Error('Method not implemented.');
}
get DOCUMENT_POSITION_DISCONNECTED(): number {
throw new Error('Method not implemented.');
}
get DOCUMENT_POSITION_FOLLOWING(): number {
throw new Error('Method not implemented.');
}
get DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC(): number {
throw new Error('Method not implemented.');
}
get DOCUMENT_POSITION_PRECEDING(): number {
throw new Error('Method not implemented.');
}
get DOCUMENT_TYPE_NODE(): number {
throw new Error('Method not implemented.');
}
get ELEMENT_NODE(): number {
throw new Error('Method not implemented.');
}
get ENTITY_NODE(): number {
throw new Error('Method not implemented.');
}
get ENTITY_REFERENCE_NODE(): number {
throw new Error('Method not implemented.');
}
get NOTATION_NODE(): number {
throw new Error('Method not implemented.');
}
get PROCESSING_INSTRUCTION_NODE(): number {
throw new Error('Method not implemented.');
}
get TEXT_NODE(): number {
throw new Error('Method not implemented.');
}
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void {
throw new Error('Method not implemented.');
}
dispatchEvent(event: Event): boolean {
throw new Error('Method not implemented.');
}
removeEventListener(type: string, callback: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void {
throw new Error('Method not implemented.');
}
}