| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- chai = require 'chai'
- should = chai.should()
- describe 'PacGenerator', ->
- PacGenerator = require '../src/pac_generator.coffee'
- options =
- '+auto':
- name: 'auto'
- profileType: 'SwitchProfile'
- revision: 'test'
- defaultProfileName: 'direct'
- rules: [
- {profileName: 'proxy', condition:
- conditionType: 'UrlRegexCondition'
- pattern: '^http://(www|www2)\\.example\\.com/'
- }
- {profileName: 'direct', condition:
- conditionType: 'HostLevelsCondition'
- minValue: 3
- maxValue: 8
- }
- {
- profileName: 'proxy'
- condition: {conditionType: 'KeywordCondition', pattern: 'keyword'}
- }
- {profileName: 'proxy', condition:
- conditionType: 'UrlWildcardCondition'
- pattern: 'https://ssl.example.com/*'
- }
- ]
- '+proxy':
- name: 'proxy'
- profileType: 'FixedProfile'
- revision: 'test'
- fallbackProxy: {scheme: 'http', host: '127.0.0.1', port: 8888}
- bypassList: [
- {conditionType: 'BypassCondition', pattern: '127.0.0.1:8080'}
- {conditionType: 'BypassCondition', pattern: '127.0.0.1'}
- {conditionType: 'BypassCondition', pattern: '<local>'}
- ]
- it 'should generate pac scripts from options', ->
- ast = PacGenerator.script(options, 'auto')
- pac = ast.print_to_string(beautify: true, comments: true)
- pac.should.not.be.empty
- func = eval("(function () { #{pac}\n return FindProxyForURL; })()")
- result = func('http://www.example.com/', 'www.example.com')
- result.should.equal('PROXY 127.0.0.1:8888')
- it 'should be able to compress pac scripts', ->
- ast = PacGenerator.script(options, 'auto')
- pac = PacGenerator.compress(ast).print_to_string()
- pac.should.not.be.empty
- func = eval("(function () { #{pac}\n return FindProxyForURL; })()")
- result = func('http://www.example.com/', 'www.example.com')
- result.should.equal('PROXY 127.0.0.1:8888')
|