mirror of
https://github.com/h3poteto/whalebird-desktop
synced 2024-12-08 15:06:53 +01:00
70 lines
2.5 KiB
TypeScript
70 lines
2.5 KiB
TypeScript
import path from 'path'
|
|
import ProxyConfiguration from '~/src/main/proxy'
|
|
import { ManualProxy, ProxyProtocol } from '~/src/types/proxy'
|
|
|
|
const preferencesDBPath = path.resolve(__dirname, '../../preferences.json')
|
|
const proxyConfiguration = new ProxyConfiguration(preferencesDBPath)
|
|
|
|
jest.mock('electron', () => ({
|
|
app: {
|
|
// getVersion is used by electron-log
|
|
getVersion: jest.fn(),
|
|
// getName is used by electron-json-storage
|
|
getName: jest.fn()
|
|
}
|
|
}))
|
|
|
|
describe('Parser', () => {
|
|
it('do not use proxy', () => {
|
|
proxyConfiguration.setSystemProxy('DIRECT')
|
|
const proxy = proxyConfiguration.parseSystemProxy()
|
|
expect(proxy).toEqual(false)
|
|
})
|
|
|
|
it('HTTP and HTTPS proxy', () => {
|
|
proxyConfiguration.setSystemProxy('PROXY hoge.example.com:8080')
|
|
const proxy = proxyConfiguration.parseSystemProxy()
|
|
expect(proxy).not.toBe(false)
|
|
const manualProxy = proxy as ManualProxy
|
|
expect(manualProxy.protocol).toEqual(ProxyProtocol.http)
|
|
expect(manualProxy.host).toEqual('hoge.example.com')
|
|
expect(manualProxy.port).toEqual('8080')
|
|
})
|
|
|
|
it('SOCKS4 proxy', () => {
|
|
proxyConfiguration.setSystemProxy('SOCKS4 hoge.example.com:8080')
|
|
const proxy = proxyConfiguration.parseSystemProxy()
|
|
expect(proxy).not.toBe(false)
|
|
const manualProxy = proxy as ManualProxy
|
|
expect(manualProxy.protocol).toEqual(ProxyProtocol.socks4)
|
|
})
|
|
it('SOCKS4A proxy', () => {
|
|
proxyConfiguration.setSystemProxy('SOCKS4A hoge.example.com:8080')
|
|
const proxy = proxyConfiguration.parseSystemProxy()
|
|
expect(proxy).not.toBe(false)
|
|
const manualProxy = proxy as ManualProxy
|
|
expect(manualProxy.protocol).toEqual(ProxyProtocol.socks4a)
|
|
})
|
|
it('SOCKS5 proxy', () => {
|
|
proxyConfiguration.setSystemProxy('SOCKS5 hoge.example.com:8080')
|
|
const proxy = proxyConfiguration.parseSystemProxy()
|
|
expect(proxy).not.toBe(false)
|
|
const manualProxy = proxy as ManualProxy
|
|
expect(manualProxy.protocol).toEqual(ProxyProtocol.socks5)
|
|
})
|
|
it('SOCKS5H proxy', () => {
|
|
proxyConfiguration.setSystemProxy('SOCKS5H hoge.example.com:8080')
|
|
const proxy = proxyConfiguration.parseSystemProxy()
|
|
expect(proxy).not.toBe(false)
|
|
const manualProxy = proxy as ManualProxy
|
|
expect(manualProxy.protocol).toEqual(ProxyProtocol.socks5h)
|
|
})
|
|
it('SOCKS proxy', () => {
|
|
proxyConfiguration.setSystemProxy('SOCKS hoge.example.com:8080')
|
|
const proxy = proxyConfiguration.parseSystemProxy()
|
|
expect(proxy).not.toBe(false)
|
|
const manualProxy = proxy as ManualProxy
|
|
expect(manualProxy.protocol).toEqual(ProxyProtocol.socks5)
|
|
})
|
|
})
|