Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
Weblate 2019-01-02 22:59:53 +00:00
commit 04b5100dcb
11 changed files with 68 additions and 64 deletions

View file

@ -124,8 +124,9 @@
"eslint-plugin-flowtype": "^2.30.0",
"eslint-plugin-react": "^7.7.0",
"estree-walker": "^0.5.0",
"expect": "^1.16.0",
"expect": "^23.6.0",
"flow-parser": "^0.57.3",
"jest-mock": "^23.2.0",
"karma": "^3.0.0",
"karma-chrome-launcher": "^0.2.3",
"karma-cli": "^1.0.1",

View file

@ -54,7 +54,7 @@ describe('DecryptionFailureTracker', function() {
// Immediately track the newest failures
tracker.trackFailures();
expect(count).toNotBe(0, 'should track a failure for an event that failed decryption');
expect(count).not.toBe(0, 'should track a failure for an event that failed decryption');
done();
});

View file

@ -185,21 +185,21 @@ describe('GroupView', function() {
const avatar = ReactTestUtils.findRenderedComponentWithType(root, sdk.getComponent('avatars.GroupAvatar'));
const img = ReactTestUtils.findRenderedDOMComponentWithTag(avatar, 'img');
const avatarImgElement = ReactDOM.findDOMNode(img);
expect(avatarImgElement).toExist();
expect(avatarImgElement.src).toInclude(
expect(avatarImgElement).toBeTruthy();
expect(avatarImgElement.src).toContain(
'https://my.home.server/_matrix/media/v1/thumbnail/' +
'someavatarurl?width=48&height=48&method=crop',
);
const name = ReactTestUtils.findRenderedDOMComponentWithClass(root, 'mx_GroupView_header_name');
const nameElement = ReactDOM.findDOMNode(name);
expect(nameElement).toExist();
expect(nameElement.innerText).toInclude('The name of a community');
expect(nameElement.innerText).toInclude(groupId);
expect(nameElement).toBeTruthy();
expect(nameElement.innerText).toContain('The name of a community');
expect(nameElement.innerText).toContain(groupId);
const shortDesc = ReactTestUtils.findRenderedDOMComponentWithClass(root, 'mx_GroupView_header_shortDesc');
const shortDescElement = ReactDOM.findDOMNode(shortDesc);
expect(shortDescElement).toExist();
expect(shortDescElement).toBeTruthy();
expect(shortDescElement.innerText).toBe('This is a community');
});
@ -219,7 +219,7 @@ describe('GroupView', function() {
const longDesc = ReactTestUtils.findRenderedDOMComponentWithClass(root, 'mx_GroupView_groupDesc');
const longDescElement = ReactDOM.findDOMNode(longDesc);
expect(longDescElement).toExist();
expect(longDescElement).toBeTruthy();
expect(longDescElement.innerText).toBe('This is a LONG description.');
expect(longDescElement.innerHTML).toBe('<div dir="auto">This is a <b>LONG</b> description.</div>');
});
@ -239,7 +239,7 @@ describe('GroupView', function() {
const placeholder = ReactTestUtils
.findRenderedDOMComponentWithClass(root, 'mx_GroupView_groupDesc_placeholder');
const placeholderElement = ReactDOM.findDOMNode(placeholder);
expect(placeholderElement).toExist();
expect(placeholderElement).toBeTruthy();
});
httpBackend
@ -258,15 +258,15 @@ describe('GroupView', function() {
const prom = waitForUpdate(groupView, 4).then(() => {
const longDesc = ReactTestUtils.findRenderedDOMComponentWithClass(root, 'mx_GroupView_groupDesc');
const longDescElement = ReactDOM.findDOMNode(longDesc);
expect(longDescElement).toExist();
expect(longDescElement).toBeTruthy();
expect(longDescElement.innerHTML).toInclude('<h1>This is a more complicated group page</h1>');
expect(longDescElement.innerHTML).toInclude('<p>With paragraphs</p>');
expect(longDescElement.innerHTML).toInclude('<ul>');
expect(longDescElement.innerHTML).toInclude('<li>And lists!</li>');
expect(longDescElement.innerHTML).toContain('<h1>This is a more complicated group page</h1>');
expect(longDescElement.innerHTML).toContain('<p>With paragraphs</p>');
expect(longDescElement.innerHTML).toContain('<ul>');
expect(longDescElement.innerHTML).toContain('<li>And lists!</li>');
const imgSrc = "https://my.home.server/_matrix/media/v1/thumbnail/someimageurl?width=800&amp;height=600";
expect(longDescElement.innerHTML).toInclude('<img src="' + imgSrc + '">');
expect(longDescElement.innerHTML).toContain('<img src="' + imgSrc + '">');
});
httpBackend
@ -285,11 +285,11 @@ describe('GroupView', function() {
const prom = waitForUpdate(groupView, 4).then(() => {
const longDesc = ReactTestUtils.findRenderedDOMComponentWithClass(root, 'mx_GroupView_groupDesc');
const longDescElement = ReactDOM.findDOMNode(longDesc);
expect(longDescElement).toExist();
expect(longDescElement).toBeTruthy();
// If this fails, the URL could be in an img `src`, which is what we care about but
// there's no harm in keeping this simple and checking the entire HTML string.
expect(longDescElement.innerHTML).toExclude('evilimageurl');
expect(longDescElement.innerHTML).not.toContain('evilimageurl');
});
httpBackend
@ -308,7 +308,7 @@ describe('GroupView', function() {
const prom = waitForUpdate(groupView, 4).then(() => {
const roomDetailList = ReactTestUtils.findRenderedDOMComponentWithClass(root, 'mx_RoomDetailList');
const roomDetailListElement = ReactDOM.findDOMNode(roomDetailList);
expect(roomDetailListElement).toExist();
expect(roomDetailListElement).toBeTruthy();
});
httpBackend.when('GET', '/groups/' + groupIdEncoded + '/summary').respond(200, summaryResponse);
@ -325,7 +325,7 @@ describe('GroupView', function() {
const prom = waitForUpdate(groupView, 4).then(() => {
const roomDetailList = ReactTestUtils.findRenderedDOMComponentWithClass(root, 'mx_RoomDetailList');
const roomDetailListElement = ReactDOM.findDOMNode(roomDetailList);
expect(roomDetailListElement).toExist();
expect(roomDetailListElement).toBeTruthy();
const roomDetailListRoomName = ReactTestUtils.findRenderedDOMComponentWithClass(
root,
@ -333,7 +333,7 @@ describe('GroupView', function() {
);
const roomDetailListRoomNameElement = ReactDOM.findDOMNode(roomDetailListRoomName);
expect(roomDetailListRoomNameElement).toExist();
expect(roomDetailListRoomNameElement).toBeTruthy();
expect(roomDetailListRoomNameElement.innerText).toEqual('Some room name');
});
@ -364,7 +364,7 @@ describe('GroupView', function() {
const prom = waitForUpdate(groupView, 3).then(() => {
const shortDesc = ReactTestUtils.findRenderedDOMComponentWithClass(root, 'mx_GroupView_header_shortDesc');
const shortDescElement = ReactDOM.findDOMNode(shortDesc);
expect(shortDescElement).toExist();
expect(shortDescElement).toBeTruthy();
expect(shortDescElement.innerText).toBe('This is a community');
});

View file

@ -14,6 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
const jest = require('jest-mock');
const React = require('react');
const ReactDOM = require('react-dom');
const ReactTestUtils = require('react-addons-test-utils');
@ -87,8 +88,8 @@ describe('Registration', function() {
});
it('should NOT track a referral following successful registration of a non-team member', function(done) {
const onLoggedIn = expect.createSpy().andCall(function(creds, teamToken) {
expect(teamToken).toNotExist();
const onLoggedIn = jest.fn(function(creds, teamToken) {
expect(teamToken).toBeFalsy();
done();
});

View file

@ -83,8 +83,8 @@ describe('InteractiveAuthDialog', function() {
submitNode = node;
}
}
expect(passwordNode).toExist();
expect(submitNode).toExist();
expect(passwordNode).toBeTruthy();
expect(submitNode).toBeTruthy();
// submit should be disabled
expect(submitNode.disabled).toBe(true);

View file

@ -114,7 +114,7 @@ describe("GroupMemberList", function() {
const memberList = ReactTestUtils.findRenderedDOMComponentWithClass(root, "mx_MemberList_joined");
const memberListElement = ReactDOM.findDOMNode(memberList);
expect(memberListElement).toExist();
expect(memberListElement).toBeTruthy();
expect(memberListElement.innerText).toBe("Test");
});
@ -134,7 +134,7 @@ describe("GroupMemberList", function() {
const memberList = ReactTestUtils.findRenderedDOMComponentWithClass(root, "mx_MemberList_joined");
const memberListElement = ReactDOM.findDOMNode(memberList);
expect(memberListElement).toExist();
expect(memberListElement).toBeTruthy();
expect(memberListElement.innerText).toBe("Failed to load group members");
});

View file

@ -14,6 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
const jest = require('jest-mock');
const React = require('react');
const ReactDOM = require("react-dom");
const ReactTestUtils = require('react-addons-test-utils');
@ -55,14 +56,14 @@ function doInputEmail(inputEmail, onTeamSelected) {
}
function expectTeamSelectedFromEmailInput(inputEmail, expectedTeam) {
const onTeamSelected = expect.createSpy();
const onTeamSelected = jest.fn();
doInputEmail(inputEmail, onTeamSelected);
expect(onTeamSelected).toHaveBeenCalledWith(expectedTeam);
}
function expectSupportFromEmailInput(inputEmail, isSupportShown) {
const onTeamSelected = expect.createSpy();
const onTeamSelected = jest.fn();
const res = doInputEmail(inputEmail, onTeamSelected);
expect(res.state.showSupportEmail).toBe(isSupportShown);

View file

@ -1,7 +1,7 @@
import React from 'react';
import ReactTestUtils from 'react-addons-test-utils';
import ReactDOM from 'react-dom';
import expect, {createSpy} from 'expect';
import expect from 'expect';
import sinon from 'sinon';
import Promise from 'bluebird';
import * as testUtils from '../../../test-utils';

View file

@ -69,7 +69,7 @@ describe('RoomList', () => {
ReactTestUtils.findRenderedComponentWithType(root, RoomList);
movingRoom = createRoom({name: 'Moving room'});
expect(movingRoom.roomId).toNotBe(null);
expect(movingRoom.roomId).not.toBe(null);
// Mock joined member
myMember = new RoomMember(movingRoomId, myUserId);
@ -139,7 +139,7 @@ describe('RoomList', () => {
throw err;
}
expect(expectedRoomTile).toExist();
expect(expectedRoomTile).toBeTruthy();
expect(expectedRoomTile.props.room).toBe(room);
}

View file

@ -1,6 +1,7 @@
import React from 'react';
import ReactDOM from 'react-dom';
import expect, {createSpy} from 'expect';
import expect from 'expect';
import jest from 'jest-mock';
import Promise from 'bluebird';
import * as testUtils from '../../../test-utils';
import sdk from 'matrix-react-sdk';
@ -18,12 +19,12 @@ describe('RoomSettings', () => {
function expectSentStateEvent(roomId, eventType, expectedEventContent) {
let found = false;
for (const call of client.sendStateEvent.calls) {
for (const call of client.sendStateEvent.mock.calls) {
const [
actualRoomId,
actualEventType,
actualEventContent,
] = call.arguments.slice(0, 3);
] = call.slice(0, 3);
if (roomId === actualRoomId && actualEventType === eventType) {
expect(actualEventContent).toEqual(expectedEventContent);
@ -40,20 +41,20 @@ describe('RoomSettings', () => {
client = MatrixClientPeg.get();
client.credentials = {userId: '@me:domain.com'};
client.setRoomName = createSpy().andReturn(Promise.resolve());
client.setRoomTopic = createSpy().andReturn(Promise.resolve());
client.setRoomDirectoryVisibility = createSpy().andReturn(Promise.resolve());
client.setRoomName = jest.fn().mockReturnValue(Promise.resolve());
client.setRoomTopic = jest.fn().mockReturnValue(Promise.resolve());
client.setRoomDirectoryVisibility = jest.fn().mockReturnValue(Promise.resolve());
// Covers any room state event (e.g. name, avatar, topic)
client.sendStateEvent = createSpy().andReturn(Promise.resolve());
client.sendStateEvent = jest.fn().mockReturnValue(Promise.resolve());
// Covers room tagging
client.setRoomTag = createSpy().andReturn(Promise.resolve());
client.deleteRoomTag = createSpy().andReturn(Promise.resolve());
client.setRoomTag = jest.fn().mockReturnValue(Promise.resolve());
client.deleteRoomTag = jest.fn().mockReturnValue(Promise.resolve());
// Covers any setting in the SettingsStore
// (including local client settings not stored via matrix)
SettingsStore.setValue = createSpy().andReturn(Promise.resolve());
SettingsStore.setValue = jest.fn().mockReturnValue(Promise.resolve());
parentDiv = document.createElement('div');
document.body.appendChild(parentDiv);
@ -83,9 +84,9 @@ describe('RoomSettings', () => {
it('should not set when no setting is changed', (done) => {
roomSettings.save().then(() => {
expect(client.sendStateEvent).toNotHaveBeenCalled();
expect(client.setRoomTag).toNotHaveBeenCalled();
expect(client.deleteRoomTag).toNotHaveBeenCalled();
expect(client.sendStateEvent).not.toHaveBeenCalled();
expect(client.setRoomTag).not.toHaveBeenCalled();
expect(client.deleteRoomTag).not.toHaveBeenCalled();
done();
});
});
@ -93,7 +94,7 @@ describe('RoomSettings', () => {
// XXX: Apparently we do call SettingsStore.setValue
xit('should not settings via the SettingsStore when no setting is changed', (done) => {
roomSettings.save().then(() => {
expect(SettingsStore.setValue).toNotHaveBeenCalled();
expect(SettingsStore.setValue).not.toHaveBeenCalled();
done();
});
});
@ -103,7 +104,7 @@ describe('RoomSettings', () => {
roomSettings.setName(name);
roomSettings.save().then(() => {
expect(client.setRoomName.calls[0].arguments.slice(0, 2))
expect(client.setRoomName.mock.calls[0].slice(0, 2))
.toEqual(['!DdJkzRliezrwpNebLk:matrix.org', name]);
done();
@ -115,7 +116,7 @@ describe('RoomSettings', () => {
roomSettings.setTopic(topic);
roomSettings.save().then(() => {
expect(client.setRoomTopic.calls[0].arguments.slice(0, 2))
expect(client.setRoomTopic.mock.calls[0].slice(0, 2))
.toEqual(['!DdJkzRliezrwpNebLk:matrix.org', topic]);
done();

View file

@ -39,7 +39,7 @@ describe('matrix-to', function() {
it('should pick no candidate servers when the room is not found', function() {
peg.get().getRoom = () => null;
const pickedServers = pickServerCandidates("!somewhere:example.org");
expect(pickedServers).toExist();
expect(pickedServers).toBeTruthy();
expect(pickedServers.length).toBe(0);
});
@ -50,7 +50,7 @@ describe('matrix-to', function() {
};
};
const pickedServers = pickServerCandidates("!somewhere:example.org");
expect(pickedServers).toExist();
expect(pickedServers).toBeTruthy();
expect(pickedServers.length).toBe(0);
});
@ -74,7 +74,7 @@ describe('matrix-to', function() {
};
};
const pickedServers = pickServerCandidates("!somewhere:example.org");
expect(pickedServers).toExist();
expect(pickedServers).toBeTruthy();
expect(pickedServers.length).toBe(3);
expect(pickedServers[0]).toBe("pl_95");
// we don't check the 2nd and 3rd servers because that is done by the next test
@ -112,7 +112,7 @@ describe('matrix-to', function() {
};
};
const pickedServers = pickServerCandidates("!somewhere:example.org");
expect(pickedServers).toExist();
expect(pickedServers).toBeTruthy();
expect(pickedServers.length).toBe(3);
expect(pickedServers[0]).toBe("first");
expect(pickedServers[1]).toBe("second");
@ -143,7 +143,7 @@ describe('matrix-to', function() {
};
};
const pickedServers = pickServerCandidates("!somewhere:example.org");
expect(pickedServers).toExist();
expect(pickedServers).toBeTruthy();
expect(pickedServers.length).toBe(3);
expect(pickedServers[0]).toBe("first");
expect(pickedServers[1]).toBe("second");
@ -178,7 +178,7 @@ describe('matrix-to', function() {
};
};
const pickedServers = pickServerCandidates("!somewhere:example.org");
expect(pickedServers).toExist();
expect(pickedServers).toBeTruthy();
expect(pickedServers.length).toBe(3);
});
@ -194,7 +194,7 @@ describe('matrix-to', function() {
};
};
const pickedServers = pickServerCandidates("!somewhere:example.org");
expect(pickedServers).toExist();
expect(pickedServers).toBeTruthy();
expect(pickedServers.length).toBe(0);
});
@ -210,7 +210,7 @@ describe('matrix-to', function() {
};
};
const pickedServers = pickServerCandidates("!somewhere:example.org");
expect(pickedServers).toExist();
expect(pickedServers).toBeTruthy();
expect(pickedServers.length).toBe(0);
});
@ -226,7 +226,7 @@ describe('matrix-to', function() {
};
};
const pickedServers = pickServerCandidates("!somewhere:example.org");
expect(pickedServers).toExist();
expect(pickedServers).toBeTruthy();
expect(pickedServers.length).toBe(0);
});
@ -242,7 +242,7 @@ describe('matrix-to', function() {
};
};
const pickedServers = pickServerCandidates("!somewhere:example.org");
expect(pickedServers).toExist();
expect(pickedServers).toBeTruthy();
expect(pickedServers.length).toBe(0);
});
@ -258,7 +258,7 @@ describe('matrix-to', function() {
};
};
const pickedServers = pickServerCandidates("!somewhere:example.org");
expect(pickedServers).toExist();
expect(pickedServers).toBeTruthy();
expect(pickedServers.length).toBe(1);
expect(pickedServers[0]).toBe("example.org:8448");
});
@ -292,7 +292,7 @@ describe('matrix-to', function() {
};
};
const pickedServers = pickServerCandidates("!somewhere:example.org");
expect(pickedServers).toExist();
expect(pickedServers).toBeTruthy();
expect(pickedServers.length).toBe(0);
});
@ -325,7 +325,7 @@ describe('matrix-to', function() {
};
};
const pickedServers = pickServerCandidates("!somewhere:example.org");
expect(pickedServers).toExist();
expect(pickedServers).toBeTruthy();
expect(pickedServers.length).toBe(0);
});
@ -358,7 +358,7 @@ describe('matrix-to', function() {
};
};
const pickedServers = pickServerCandidates("!somewhere:example.org");
expect(pickedServers).toExist();
expect(pickedServers).toBeTruthy();
expect(pickedServers.length).toBe(1);
expect(pickedServers[0]).toEqual("evilcorp.com");
});
@ -392,7 +392,7 @@ describe('matrix-to', function() {
};
};
const pickedServers = pickServerCandidates("!somewhere:example.org");
expect(pickedServers).toExist();
expect(pickedServers).toBeTruthy();
expect(pickedServers.length).toBe(1);
expect(pickedServers[0]).toEqual("evilcorp.com");
});