mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
12e055a37c
* Add background environment type The `getEnvironmentType` method now checks for the background environment as well, instead of returning 'notification' for that case. Instead of adding another regex for the background path, the regexes for each environment have been replaced with the URL constructor[0]. This is the standard method of parsing URLs, and is available in all supported browsers. [0]: https://developer.mozilla.org/en-US/docs/Web/API/URL * Add note regarding a missing manifest permission The `url` parameter to `tabs.query(...)` requires the `tabs` permission, and will be ignored otherwise. We are missing this permission, so that call does not work. * Close window after opening full screen The browser behaviour when opening a new tab differs between Chrome and Firefox. In the case of a popup, Chrome will close the popup whereas Firefox will leave it open. In the case of the notification window, Chrome will move the new tab to the foreground, whereas Firefox will leave the notification window in the foreground when opening a new tab. We always want to close the current UI (popup or notification) when switching to a full-screen view. The only exception to this is when the switch is triggered from the background, which has no UI. Closes #6513, #6685
84 lines
2.8 KiB
JavaScript
84 lines
2.8 KiB
JavaScript
const assert = require('assert')
|
|
const { getEnvironmentType, sufficientBalance } = require('../../../app/scripts/lib/util')
|
|
const {
|
|
ENVIRONMENT_TYPE_POPUP,
|
|
ENVIRONMENT_TYPE_NOTIFICATION,
|
|
ENVIRONMENT_TYPE_FULLSCREEN,
|
|
ENVIRONMENT_TYPE_BACKGROUND,
|
|
} = require('../../../app/scripts/lib/enums')
|
|
|
|
describe('getEnvironmentType', function () {
|
|
it('should return popup type', function () {
|
|
const environmentType = getEnvironmentType('http://extension-id/popup.html')
|
|
assert.equal(environmentType, ENVIRONMENT_TYPE_POPUP)
|
|
})
|
|
|
|
it('should return notification type', function () {
|
|
const environmentType = getEnvironmentType('http://extension-id/notification.html')
|
|
assert.equal(environmentType, ENVIRONMENT_TYPE_NOTIFICATION)
|
|
})
|
|
|
|
it('should return fullscreen type', function () {
|
|
const environmentType = getEnvironmentType('http://extension-id/home.html')
|
|
assert.equal(environmentType, ENVIRONMENT_TYPE_FULLSCREEN)
|
|
})
|
|
|
|
it('should return background type', function () {
|
|
const environmentType = getEnvironmentType('http://extension-id/_generated_background_page.html')
|
|
assert.equal(environmentType, ENVIRONMENT_TYPE_BACKGROUND)
|
|
})
|
|
|
|
it('should return the correct type for a URL with a hash fragment', function () {
|
|
const environmentType = getEnvironmentType('http://extension-id/popup.html#hash')
|
|
assert.equal(environmentType, ENVIRONMENT_TYPE_POPUP)
|
|
})
|
|
|
|
it('should return the correct type for a URL with query parameters', function () {
|
|
const environmentType = getEnvironmentType('http://extension-id/popup.html?param=foo')
|
|
assert.equal(environmentType, ENVIRONMENT_TYPE_POPUP)
|
|
})
|
|
|
|
it('should return the correct type for a URL with query parameters and a hash fragment', function () {
|
|
const environmentType = getEnvironmentType('http://extension-id/popup.html?param=foo#hash')
|
|
assert.equal(environmentType, ENVIRONMENT_TYPE_POPUP)
|
|
})
|
|
})
|
|
|
|
describe('SufficientBalance', function () {
|
|
it('returns true if max tx cost is equal to balance.', function () {
|
|
const tx = {
|
|
'value': '0x1',
|
|
'gas': '0x2',
|
|
'gasPrice': '0x3',
|
|
}
|
|
const balance = '0x8'
|
|
|
|
const result = sufficientBalance(tx, balance)
|
|
assert.ok(result, 'sufficient balance found.')
|
|
})
|
|
|
|
it('returns true if max tx cost is less than balance.', function () {
|
|
const tx = {
|
|
'value': '0x1',
|
|
'gas': '0x2',
|
|
'gasPrice': '0x3',
|
|
}
|
|
const balance = '0x9'
|
|
|
|
const result = sufficientBalance(tx, balance)
|
|
assert.ok(result, 'sufficient balance found.')
|
|
})
|
|
|
|
it('returns false if max tx cost is more than balance.', function () {
|
|
const tx = {
|
|
'value': '0x1',
|
|
'gas': '0x2',
|
|
'gasPrice': '0x3',
|
|
}
|
|
const balance = '0x6'
|
|
|
|
const result = sufficientBalance(tx, balance)
|
|
assert.ok(!result, 'insufficient balance found.')
|
|
})
|
|
})
|