// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// Parity is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
import { shallow } from 'enzyme';
import React from 'react';
import sinon from 'sinon';
import { asciiToHex } from '~/api/util/format';
import SignRequest, { isMarkdown } from './signRequest';
let component;
let reduxStore;
let signerStore;
function createSignerStore () {
return {
balances: {},
fetchBalance: sinon.stub()
};
}
function createReduxStore () {
return {
dispatch: sinon.stub(),
subscribe: sinon.stub(),
getState: () => {
return {
personal: {
accounts: {}
}
};
}
};
}
function render () {
reduxStore = createReduxStore();
signerStore = createSignerStore();
const context = {
store: reduxStore,
api: {
transport: {
on: sinon.stub()
},
pubsub: {
subscribeAndGetResult: sinon.stub().returns(Promise.resolve(1))
},
util: {
sha3: (x) => x,
hexToBytes: (x) => x,
asciiToHex: (x) => x
}
}
};
component = shallow(
,
{ context }
).find('SignRequest').shallow({ context });
return component;
}
describe('views/Signer/components/SignRequest', () => {
beforeEach(() => {
render();
});
it('renders', () => {
expect(component).to.be.ok;
});
describe('isMarkdown', () => {
it('returns true for markdown', () => {
const testMd = '# this is some\n\n*markdown*';
const encodedMd = asciiToHex(unescape(encodeURIComponent(testMd)));
expect(isMarkdown(encodedMd)).to.be.true;
});
it('return true with utf-8 markdown', () => {
const testMd = '# header\n\n(n) you are not a citizen of, or resident in, or located in, or incorporated or otherwise established in, the People\'s Republic of China 参与方并非中华人民共和国公民,或不常住中华人民共和国,或不位于中华人民共和国境内,或并非在中华人民共和国设立或以其他方式组建; and';
const encodedMd = asciiToHex(unescape(encodeURIComponent(testMd)));
expect(isMarkdown(encodedMd)).to.be.true;
});
it('returns false for random data', () => {
expect(isMarkdown('0x1234')).to.be.false;
});
});
});