2016-01-15 23:35:28 +03:00
|
|
|
path = require 'path'
|
2015-10-09 19:54:30 +03:00
|
|
|
fs = require 'fs-plus'
|
2016-01-15 23:35:28 +03:00
|
|
|
temp = require 'temp'
|
2016-05-25 12:02:29 +03:00
|
|
|
AtomPortable = require '../src/main-process/atom-portable'
|
2015-10-09 19:54:30 +03:00
|
|
|
|
2015-11-02 19:22:58 +03:00
|
|
|
portableModeCommonPlatformBehavior = (platform) ->
|
|
|
|
describe "with ATOM_HOME environment variable", ->
|
|
|
|
it "returns false", ->
|
|
|
|
expect(AtomPortable.isPortableInstall(platform, "C:\\some\\path")).toBe false
|
|
|
|
|
|
|
|
describe "without ATOM_HOME environment variable", ->
|
|
|
|
environmentAtomHome = undefined
|
|
|
|
portableAtomHomePath = path.join(path.dirname(process.execPath), "..", ".atom")
|
|
|
|
portableAtomHomeNaturallyExists = fs.existsSync(portableAtomHomePath)
|
|
|
|
portableAtomHomeBackupPath = "#{portableAtomHomePath}.temp"
|
|
|
|
|
|
|
|
beforeEach ->
|
|
|
|
fs.renameSync(portableAtomHomePath, portableAtomHomeBackupPath) if fs.existsSync(portableAtomHomePath)
|
|
|
|
|
|
|
|
afterEach ->
|
|
|
|
if portableAtomHomeNaturallyExists
|
|
|
|
fs.renameSync(portableAtomHomeBackupPath, portableAtomHomePath) if not fs.existsSync(portableAtomHomePath)
|
|
|
|
else
|
|
|
|
fs.removeSync(portableAtomHomePath) if fs.existsSync(portableAtomHomePath)
|
|
|
|
fs.removeSync(portableAtomHomeBackupPath) if fs.existsSync(portableAtomHomeBackupPath)
|
|
|
|
|
|
|
|
describe "with .atom directory sibling to exec", ->
|
|
|
|
beforeEach ->
|
|
|
|
fs.mkdirSync(portableAtomHomePath) if not fs.existsSync(portableAtomHomePath)
|
|
|
|
|
|
|
|
describe "without .atom directory sibling to exec", ->
|
|
|
|
beforeEach ->
|
|
|
|
fs.removeSync(portableAtomHomePath) if fs.existsSync(portableAtomHomePath)
|
|
|
|
|
|
|
|
it "returns false", ->
|
|
|
|
expect(AtomPortable.isPortableInstall(platform, environmentAtomHome)).toBe false
|
|
|
|
|
2015-11-04 01:52:23 +03:00
|
|
|
describe "Set Portable Mode on #win32", ->
|
2015-11-04 00:19:11 +03:00
|
|
|
portableAtomHomePath = path.join(path.dirname(process.execPath), "..", ".atom")
|
2015-10-20 19:57:04 +03:00
|
|
|
portableAtomHomeNaturallyExists = fs.existsSync(portableAtomHomePath)
|
2015-11-04 00:19:11 +03:00
|
|
|
portableAtomHomeBackupPath = "#{portableAtomHomePath}.temp"
|
2015-10-20 19:57:04 +03:00
|
|
|
|
|
|
|
beforeEach ->
|
|
|
|
fs.renameSync(portableAtomHomePath, portableAtomHomeBackupPath) if fs.existsSync(portableAtomHomePath)
|
|
|
|
|
|
|
|
afterEach ->
|
|
|
|
if portableAtomHomeNaturallyExists
|
|
|
|
fs.renameSync(portableAtomHomeBackupPath, portableAtomHomePath) if not fs.existsSync(portableAtomHomePath)
|
|
|
|
else
|
2015-11-04 02:02:40 +03:00
|
|
|
fs.removeSync(portableAtomHomePath) if fs.existsSync(portableAtomHomePath)
|
|
|
|
fs.removeSync(portableAtomHomeBackupPath) if fs.existsSync(portableAtomHomeBackupPath)
|
2015-10-20 19:57:04 +03:00
|
|
|
|
2015-11-04 02:01:54 +03:00
|
|
|
it "creates a portable home directory", ->
|
2015-11-04 01:58:51 +03:00
|
|
|
expect(fs.existsSync(portableAtomHomePath)).toBe false
|
|
|
|
|
2015-10-20 19:57:04 +03:00
|
|
|
AtomPortable.setPortable(process.env.ATOM_HOME)
|
|
|
|
expect(fs.existsSync(portableAtomHomePath)).toBe true
|
|
|
|
|
2015-10-13 14:21:54 +03:00
|
|
|
describe "Check for Portable Mode", ->
|
2015-10-09 19:54:30 +03:00
|
|
|
describe "Windows", ->
|
2015-11-02 19:22:58 +03:00
|
|
|
portableModeCommonPlatformBehavior "win32"
|
2015-10-09 19:54:30 +03:00
|
|
|
|
|
|
|
describe "Mac", ->
|
|
|
|
it "returns false", ->
|
2015-10-27 20:44:02 +03:00
|
|
|
expect(AtomPortable.isPortableInstall("darwin", "darwin")).toBe false
|
2015-10-09 19:54:30 +03:00
|
|
|
|
|
|
|
describe "Linux", ->
|
2015-11-02 19:22:58 +03:00
|
|
|
portableModeCommonPlatformBehavior "linux"
|