microsoft/vscode-react-native

Public

mirrored from https://github.com/microsoft/vscode-react-nativeAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
0.1.4

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

src/test/common/extensionMessaging.test.ts

102lines · modeblame

347157a1Joshua Skelton10 years ago1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the MIT license. See LICENSE file in the project root for details.
3
4import {HostPlatform} from "../../common/hostPlatform";
5
6import {
7ExtensionMessage,
cdf34447digeff10 years ago8ExtensionMessageSender,
347157a1Joshua Skelton10 years ago9} from "../../common/extensionMessaging";
10
11import * as assert from "assert";
12import * as net from "net";
13import * as Q from "q";
14
8f09b17cJoshua Skelton10 years ago15let mockServer: net.Server;
16
347157a1Joshua Skelton10 years ago17suite("extensionMessaging", function() {
18suite("commonContext", function() {
19teardown(function() {
8f09b17cJoshua Skelton10 years ago20if (mockServer) {
21mockServer.close();
347157a1Joshua Skelton10 years ago22}
23});
24
25test("should successfully send a message", function(done: MochaDone) {
8f09b17cJoshua Skelton10 years ago26const port: string = HostPlatform.getExtensionPipePath();
ad7eb7feJoshua Skelton10 years ago27let receivedMessage: ExtensionMessage;
28
8f09b17cJoshua Skelton10 years ago29mockServer = net.createServer(function(client: net.Socket): void {
347157a1Joshua Skelton10 years ago30mockServer.close();
31client.on("data", function(data: Buffer) {
8f09b17cJoshua Skelton10 years ago32const messageData: any = JSON.parse(data.toString("utf8"));
347157a1Joshua Skelton10 years ago33client.end();
34
ad7eb7feJoshua Skelton10 years ago35receivedMessage = messageData.message;
347157a1Joshua Skelton10 years ago36});
37});
38
39mockServer.on("error", done);
c1c16452Joshua Skelton10 years ago40mockServer.listen(port);
347157a1Joshua Skelton10 years ago41
42const sender = new ExtensionMessageSender();
43
44Q({})
45.then(function() {
46return sender.sendMessage(ExtensionMessage.START_PACKAGER);
ad7eb7feJoshua Skelton10 years ago47})
48.then(function() {
49assert.equal(receivedMessage, ExtensionMessage.START_PACKAGER);
347157a1Joshua Skelton10 years ago50}).done(() => done(), done);
51});
52
53test("should successfully send a message with args", function(done: MochaDone) {
8f09b17cJoshua Skelton10 years ago54const port: string = HostPlatform.getExtensionPipePath();
55const args = ["android"];
ad7eb7feJoshua Skelton10 years ago56let receivedMessage: ExtensionMessage;
57let receivedArgs: any;
58
8f09b17cJoshua Skelton10 years ago59mockServer = net.createServer(function(client: net.Socket): void {
347157a1Joshua Skelton10 years ago60mockServer.close();
61client.on("data", function(data: Buffer) {
8f09b17cJoshua Skelton10 years ago62const messageData: any = JSON.parse(data.toString("utf8"));
347157a1Joshua Skelton10 years ago63client.end();
64
ad7eb7feJoshua Skelton10 years ago65receivedMessage = messageData.message;
66receivedArgs = messageData.args;
347157a1Joshua Skelton10 years ago67});
68});
69
70mockServer.on("error", done);
c1c16452Joshua Skelton10 years ago71mockServer.listen(port);
347157a1Joshua Skelton10 years ago72
73const sender = new ExtensionMessageSender();
74
75Q({})
76.then(function() {
77return sender.sendMessage(ExtensionMessage.PREWARM_BUNDLE_CACHE, args);
ad7eb7feJoshua Skelton10 years ago78})
79.then(function() {
80assert.equal(receivedMessage, ExtensionMessage.PREWARM_BUNDLE_CACHE);
81assert.deepEqual(receivedArgs, args);
347157a1Joshua Skelton10 years ago82}).done(() => done(), done);
83});
84
85test("should reject on socket error", function(done: MochaDone) {
86const sender = new ExtensionMessageSender();
87
88Q({})
89.then(function() {
90return sender.sendMessage(ExtensionMessage.PREWARM_BUNDLE_CACHE);
91})
92.then(function() {
15c3e378Joshua Skelton10 years ago93assert(false, "sendMessage should reject on socket error");
e9868794Joshua Skelton10 years ago94},
95function(reason: any) {
347157a1Joshua Skelton10 years ago96let expectedErrorMessage = "An error ocurred while handling message: PREWARM_BUNDLE_CACHE";
97assert.equal(reason.message, expectedErrorMessage);
98})
99.done(() => done(), done);
100});
101});
102});