* [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
107 lines
2.9 KiB
JavaScript
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;
|
|
});
|
|
});
|
|
});
|