mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-23 20:01:01 +08:00
Prettier IntegrationTests
Reviewed By: sahrens Differential Revision: D7958195 fbshipit-source-id: 253c0eec593228e7b6bc66606584877161c6bfc2
This commit is contained in:
committed by
Facebook Github Bot
parent
86b6f5d39e
commit
dca21c8f23
@@ -4,23 +4,20 @@
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @format
|
||||
* @flow
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var React = require('react');
|
||||
var ReactNative = require('react-native');
|
||||
var { View } = ReactNative;
|
||||
var { TestModule } = ReactNative.NativeModules;
|
||||
var {View} = ReactNative;
|
||||
var {TestModule} = ReactNative.NativeModules;
|
||||
|
||||
const DEFAULT_WS_URL = 'ws://localhost:5555/';
|
||||
|
||||
const WS_EVENTS = [
|
||||
'close',
|
||||
'error',
|
||||
'message',
|
||||
'open',
|
||||
];
|
||||
const WS_EVENTS = ['close', 'error', 'message', 'open'];
|
||||
const WS_STATES = [
|
||||
/* 0 */ 'CONNECTING',
|
||||
/* 1 */ 'OPEN',
|
||||
@@ -29,14 +26,14 @@ const WS_STATES = [
|
||||
];
|
||||
|
||||
type State = {
|
||||
url: string;
|
||||
fetchStatus: ?string;
|
||||
socket: ?WebSocket;
|
||||
socketState: ?number;
|
||||
lastSocketEvent: ?string;
|
||||
lastMessage: ?string | ?ArrayBuffer;
|
||||
testMessage: string;
|
||||
testExpectedResponse: string;
|
||||
url: string,
|
||||
fetchStatus: ?string,
|
||||
socket: ?WebSocket,
|
||||
socketState: ?number,
|
||||
lastSocketEvent: ?string,
|
||||
lastMessage: ?string | ?ArrayBuffer,
|
||||
testMessage: string,
|
||||
testExpectedResponse: string,
|
||||
};
|
||||
|
||||
class WebSocketTest extends React.Component<{}, State> {
|
||||
@@ -48,13 +45,13 @@ class WebSocketTest extends React.Component<{}, State> {
|
||||
lastSocketEvent: null,
|
||||
lastMessage: null,
|
||||
testMessage: 'testMessage',
|
||||
testExpectedResponse: 'testMessage_response'
|
||||
testExpectedResponse: 'testMessage_response',
|
||||
};
|
||||
|
||||
_waitFor = (condition: any, timeout: any, callback: any) => {
|
||||
var remaining = timeout;
|
||||
var t;
|
||||
var timeoutFunction = function() {
|
||||
var timeoutFunction = function() {
|
||||
if (condition()) {
|
||||
callback(true);
|
||||
return;
|
||||
@@ -63,11 +60,11 @@ class WebSocketTest extends React.Component<{}, State> {
|
||||
if (remaining === 0) {
|
||||
callback(false);
|
||||
} else {
|
||||
t = setTimeout(timeoutFunction,1000);
|
||||
t = setTimeout(timeoutFunction, 1000);
|
||||
}
|
||||
};
|
||||
t = setTimeout(timeoutFunction,1000);
|
||||
}
|
||||
t = setTimeout(timeoutFunction, 1000);
|
||||
};
|
||||
|
||||
_connect = () => {
|
||||
const socket = new WebSocket(this.state.url);
|
||||
@@ -80,11 +77,11 @@ class WebSocketTest extends React.Component<{}, State> {
|
||||
|
||||
_socketIsConnected = () => {
|
||||
return this.state.socketState === 1; //'OPEN'
|
||||
}
|
||||
};
|
||||
|
||||
_socketIsDisconnected = () => {
|
||||
return this.state.socketState === 3; //'CLOSED'
|
||||
}
|
||||
};
|
||||
|
||||
_disconnect = () => {
|
||||
if (!this.state.socket) {
|
||||
@@ -116,7 +113,7 @@ class WebSocketTest extends React.Component<{}, State> {
|
||||
};
|
||||
|
||||
_receivedTestExpectedResponse = () => {
|
||||
return (this.state.lastMessage === this.state.testExpectedResponse);
|
||||
return this.state.lastMessage === this.state.testExpectedResponse;
|
||||
};
|
||||
|
||||
componentDidMount() {
|
||||
@@ -126,34 +123,40 @@ class WebSocketTest extends React.Component<{}, State> {
|
||||
testConnect = () => {
|
||||
var component = this;
|
||||
component._connect();
|
||||
component._waitFor(component._socketIsConnected, 5, function(connectSucceeded) {
|
||||
component._waitFor(component._socketIsConnected, 5, function(
|
||||
connectSucceeded,
|
||||
) {
|
||||
if (!connectSucceeded) {
|
||||
TestModule.markTestPassed(false);
|
||||
return;
|
||||
}
|
||||
component.testSendAndReceive();
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
testSendAndReceive = () => {
|
||||
var component = this;
|
||||
component._sendTestMessage();
|
||||
component._waitFor(component._receivedTestExpectedResponse, 5, function(messageReceived) {
|
||||
component._waitFor(component._receivedTestExpectedResponse, 5, function(
|
||||
messageReceived,
|
||||
) {
|
||||
if (!messageReceived) {
|
||||
TestModule.markTestPassed(false);
|
||||
return;
|
||||
}
|
||||
component.testDisconnect();
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
testDisconnect = () => {
|
||||
var component = this;
|
||||
component._disconnect();
|
||||
component._waitFor(component._socketIsDisconnected, 5, function(disconnectSucceeded) {
|
||||
component._waitFor(component._socketIsDisconnected, 5, function(
|
||||
disconnectSucceeded,
|
||||
) {
|
||||
TestModule.markTestPassed(disconnectSucceeded);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
render(): React.Node {
|
||||
return <View />;
|
||||
|
||||
Reference in New Issue
Block a user