openethereum/js/src/views/Signer/components/SignRequest/signRequest.spec.js
Jaco Greeff 6d0dfa6dab Backport #6710 & #6714 (#6715)
* [ci skip] js-precompiled 20171011-183908

* Fix estimate gas if from is not provided. (#6714)

* Display vouched overlay on dapps (#6710)

* Remove .only

* Add vouch overlays to dapps

* Cleanup address

* Only run where we have a contentHash

* GitLab kickstart
2017-10-11 22:21:12 +02:00

107 lines
2.9 KiB
JavaScript

// 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 <http://www.gnu.org/licenses/>.
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(
<SignRequest signerStore={ signerStore } />,
{ 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;
});
});
});