aboutsummaryrefslogtreecommitdiffstats
path: root/test/integration/lib
diff options
context:
space:
mode:
Diffstat (limited to 'test/integration/lib')
-rw-r--r--test/integration/lib/encryptor-test.js71
-rw-r--r--test/integration/lib/keyring-controller-test.js60
2 files changed, 60 insertions, 71 deletions
diff --git a/test/integration/lib/encryptor-test.js b/test/integration/lib/encryptor-test.js
deleted file mode 100644
index 897d22740..000000000
--- a/test/integration/lib/encryptor-test.js
+++ /dev/null
@@ -1,71 +0,0 @@
-var encryptor = require('../../../app/scripts/lib/encryptor')
-
-QUnit.module('encryptor')
-
-QUnit.test('encryptor:serializeBufferForStorage', function (assert) {
- assert.expect(1)
- var buf = new Buffer(2)
- buf[0] = 16
- buf[1] = 1
-
- var output = encryptor.serializeBufferForStorage(buf)
-
- var expect = '0x1001'
- assert.equal(expect, output)
-})
-
-QUnit.test('encryptor:serializeBufferFromStorage', function (assert) {
- assert.expect(2)
- var input = '0x1001'
- var output = encryptor.serializeBufferFromStorage(input)
-
- assert.equal(output[0], 16)
- assert.equal(output[1], 1)
-})
-
-QUnit.test('encryptor:encrypt & decrypt', function(assert) {
- var done = assert.async();
- var password, data, encrypted
-
- password = 'a sample passw0rd'
- data = { foo: 'data to encrypt' }
-
- encryptor.encrypt(password, data)
- .then(function(encryptedStr) {
- assert.equal(typeof encryptedStr, 'string', 'returns a string')
- return encryptor.decrypt(password, encryptedStr)
- })
- .then(function (decryptedObj) {
- assert.deepEqual(decryptedObj, data, 'decrypted what was encrypted')
- done()
- })
- .catch(function(reason) {
- assert.ifError(reason, 'threw an error')
- done(reason)
- })
-
-})
-
-QUnit.test('encryptor:encrypt & decrypt with wrong password', function(assert) {
- var done = assert.async();
- var password, data, encrypted, wrongPassword
-
- password = 'a sample passw0rd'
- wrongPassword = 'a wrong password'
- data = { foo: 'data to encrypt' }
-
- encryptor.encrypt(password, data)
- .then(function(encryptedStr) {
- assert.equal(typeof encryptedStr, 'string', 'returns a string')
- return encryptor.decrypt(wrongPassword, encryptedStr)
- })
- .then(function (decryptedObj) {
- assert.equal(!decryptedObj, true, 'Wrong password should not decrypt')
- done()
- })
- .catch(function(reason) {
- done()
- })
-})
-
-
diff --git a/test/integration/lib/keyring-controller-test.js b/test/integration/lib/keyring-controller-test.js
index 2d16e2f95..314641841 100644
--- a/test/integration/lib/keyring-controller-test.js
+++ b/test/integration/lib/keyring-controller-test.js
@@ -2,11 +2,14 @@ var KeyringController = require('../../../app/scripts/keyring-controller')
var ConfigManager = require('../../../app/scripts/lib/config-manager')
var oldStyleVault = require('../mocks/oldVault.json')
+var badStyleVault = require('../mocks/badVault.json')
var STORAGE_KEY = 'metamask-config'
var PASSWORD = '12345678'
var FIRST_ADDRESS = '0x4dd5d356c5A016A220bCD69e82e5AF680a430d00'.toLowerCase()
+var BAD_STYLE_FIRST_ADDRESS = '0xac39b311dceb2a4b2f5d8461c1cdaf756f4f7ae9'
+
QUnit.module('Old Style Vaults', {
beforeEach: function () {
@@ -45,6 +48,63 @@ QUnit.test('keyringController:submitPassword', function (assert) {
this.keyringController.submitPassword(PASSWORD)
.then((state) => {
assert.ok(state.identities[FIRST_ADDRESS])
+ assert.equal(state.lostAccounts.length, 0, 'no lost accounts')
+ done()
+ })
+})
+
+QUnit.test('keyringController:setLocked', function (assert) {
+ var done = assert.async()
+ var self = this
+
+ this.keyringController.setLocked()
+ .then(function() {
+ assert.notOk(self.keyringController.password, 'password should be deallocated')
+ assert.deepEqual(self.keyringController.keyrings, [], 'keyrings should be deallocated')
+ done()
+ })
+ .catch((reason) => {
+ assert.ifError(reason)
+ done()
+ })
+})
+
+QUnit.module('Old Style Vaults with bad HD seed', {
+ beforeEach: function () {
+ window.localStorage[STORAGE_KEY] = JSON.stringify(badStyleVault)
+
+ this.configManager = new ConfigManager({
+ loadData: () => { return JSON.parse(window.localStorage[STORAGE_KEY]) },
+ setData: (data) => { window.localStorage[STORAGE_KEY] = JSON.stringify(data) },
+ })
+
+ this.keyringController = new KeyringController({
+ configManager: this.configManager,
+ getNetwork: () => { return '2' },
+ })
+
+ this.ethStore = {
+ addAccount: () => {},
+ removeAccount: () => {},
+ }
+
+ this.keyringController.setStore(this.ethStore)
+ }
+})
+
+QUnit.test('keyringController:isInitialized', function (assert) {
+ assert.ok(this.keyringController.getState().isInitialized, 'vault is initialized')
+})
+
+QUnit.test('keyringController:submitPassword', function (assert) {
+ var done = assert.async()
+
+ this.keyringController.submitPassword(PASSWORD)
+ .then((state) => {
+ assert.ok(state.identities[BAD_STYLE_FIRST_ADDRESS])
+ assert.equal(state.lostAccounts.length, 1, 'one lost account')
+ assert.equal(state.lostAccounts[0], '0xe15D894BeCB0354c501AE69429B05143679F39e0'.toLowerCase())
+ assert.deepEqual(this.configManager.getLostAccounts(), state.lostAccounts, 'persisted')
done()
})
})