From 9bd8c5f723abef25b8864457df7207eb361be8e3 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Mon, 6 Mar 2017 15:03:49 -0800 Subject: Render personal_sign messages as utf-8 text Calls to `personal_sign` are now: - When hex encoded, preserved as hex encoded, but displayed as utf-8 text. - When not hex encoded, decoded as utf-8 text as hex for signing. - The messages proposed for signing are displayed as UTF-8 text. - When the message cannot be rendered as UTF-8 text, it is displayed as hexadecimal. Fixes #1173 --- test/unit/components/binary-renderer-test.js | 25 +++++++++++++++++++++++++ test/unit/personal-message-manager-test.js | 23 ++++++++++++++++++++++- 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 test/unit/components/binary-renderer-test.js (limited to 'test/unit') diff --git a/test/unit/components/binary-renderer-test.js b/test/unit/components/binary-renderer-test.js new file mode 100644 index 000000000..3264faddc --- /dev/null +++ b/test/unit/components/binary-renderer-test.js @@ -0,0 +1,25 @@ +var assert = require('assert') +var BinaryRenderer = require('../../../ui/app/components/binary-renderer') + +describe('BinaryRenderer', function() { + + let binaryRenderer + const message = 'Hello, world!' + const buffer = new Buffer(message, 'utf8') + const hex = buffer.toString('hex') + + beforeEach(function() { + binaryRenderer = new BinaryRenderer() + }) + + it('recovers message', function() { + const result = binaryRenderer.hexToText(hex) + assert.equal(result, message) + }) + + + it('recovers message with hex prefix', function() { + const result = binaryRenderer.hexToText('0x' + hex) + assert.equal(result, message) + }) +}) diff --git a/test/unit/personal-message-manager-test.js b/test/unit/personal-message-manager-test.js index 657d5e675..69d373ed3 100644 --- a/test/unit/personal-message-manager-test.js +++ b/test/unit/personal-message-manager-test.js @@ -4,7 +4,7 @@ const EventEmitter = require('events') const PersonalMessageManager = require('../../app/scripts/lib/personal-message-manager') -describe('Transaction Manager', function() { +describe('Personal Message Manager', function() { let messageManager beforeEach(function() { @@ -86,4 +86,25 @@ describe('Transaction Manager', function() { assert.equal(messageManager.getMsg('2').status, 'approved') }) }) + + describe('#normalizeMsgData', function() { + it('converts text to a utf8 buffer', function() { + var input = 'hello' + var output = messageManager.normalizeMsgdata(input) + assert.equal(output, '68656c6c6f', 'predictably hex encoded') + }) + + it('tolerates a hex prefix', function() { + var input = '0x12' + var output = messageManager.normalizeMsgdata(input) + assert.equal(output, '12', 'prefix stripped') + }) + + it('tolerates normal hex', function() { + var input = '12' + var output = messageManager.normalizeMsgdata(input) + assert.equal(output, '12', 'not modified') + }) + }) + }) -- cgit From af337dfae556cc3ac8739dc8337970147d74bb69 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Mon, 6 Mar 2017 15:17:45 -0800 Subject: Fix function names --- test/unit/personal-message-manager-test.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'test/unit') diff --git a/test/unit/personal-message-manager-test.js b/test/unit/personal-message-manager-test.js index 69d373ed3..5ee03726f 100644 --- a/test/unit/personal-message-manager-test.js +++ b/test/unit/personal-message-manager-test.js @@ -90,20 +90,20 @@ describe('Personal Message Manager', function() { describe('#normalizeMsgData', function() { it('converts text to a utf8 buffer', function() { var input = 'hello' - var output = messageManager.normalizeMsgdata(input) - assert.equal(output, '68656c6c6f', 'predictably hex encoded') + var output = messageManager.normalizeMsgData(input) + assert.equal(output, '0x68656c6c6f', 'predictably hex encoded') }) it('tolerates a hex prefix', function() { var input = '0x12' - var output = messageManager.normalizeMsgdata(input) - assert.equal(output, '12', 'prefix stripped') + var output = messageManager.normalizeMsgData(input) + assert.equal(output, '12', 'un modified') }) it('tolerates normal hex', function() { var input = '12' - var output = messageManager.normalizeMsgdata(input) - assert.equal(output, '12', 'not modified') + var output = messageManager.normalizeMsgData(input) + assert.equal(output, '12', 'adds prefix') }) }) -- cgit From e66e755766ef318c38277c184d2670cc2179d37a Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Mon, 6 Mar 2017 16:33:33 -0800 Subject: Fix normalizeMsgData function to always return hex prefixed --- test/unit/personal-message-manager-test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'test/unit') diff --git a/test/unit/personal-message-manager-test.js b/test/unit/personal-message-manager-test.js index 5ee03726f..77e1656c5 100644 --- a/test/unit/personal-message-manager-test.js +++ b/test/unit/personal-message-manager-test.js @@ -97,13 +97,13 @@ describe('Personal Message Manager', function() { it('tolerates a hex prefix', function() { var input = '0x12' var output = messageManager.normalizeMsgData(input) - assert.equal(output, '12', 'un modified') + assert.equal(output, '0x12', 'un modified') }) it('tolerates normal hex', function() { var input = '12' var output = messageManager.normalizeMsgData(input) - assert.equal(output, '12', 'adds prefix') + assert.equal(output, '0x12', 'adds prefix') }) }) -- cgit