mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-14 14:11:23 -04:00
Some files were omitted in the .eslintignore, left as an exercise to the reader. We probably want to reduce amount of globals overall and use proper es modules.
41 lines
1.6 KiB
JavaScript
41 lines
1.6 KiB
JavaScript
/* global expect, it, describe, WS */
|
|
|
|
/*
|
|
jasmine tests for Snowflake websocket
|
|
*/
|
|
|
|
describe('BuildUrl', function() {
|
|
|
|
it('should parse just protocol and host', function() {
|
|
expect(WS.buildUrl('http', 'example.com')).toBe('http://example.com');
|
|
});
|
|
|
|
it('should handle different ports', function() {
|
|
expect(WS.buildUrl('http', 'example.com', 80)).toBe('http://example.com');
|
|
expect(WS.buildUrl('http', 'example.com', 81)).toBe('http://example.com:81');
|
|
expect(WS.buildUrl('http', 'example.com', 443)).toBe('http://example.com:443');
|
|
expect(WS.buildUrl('http', 'example.com', 444)).toBe('http://example.com:444');
|
|
});
|
|
|
|
it('should handle paths', function() {
|
|
expect(WS.buildUrl('http', 'example.com', 80, '/')).toBe('http://example.com/');
|
|
expect(WS.buildUrl('http', 'example.com', 80, '/test?k=%#v')).toBe('http://example.com/test%3Fk%3D%25%23v');
|
|
expect(WS.buildUrl('http', 'example.com', 80, '/test')).toBe('http://example.com/test');
|
|
});
|
|
|
|
it('should handle params', function() {
|
|
expect(WS.buildUrl('http', 'example.com', 80, '/test', [['k', '%#v']])).toBe('http://example.com/test?k=%25%23v');
|
|
expect(WS.buildUrl('http', 'example.com', 80, '/test', [['a', 'b'], ['c', 'd']])).toBe('http://example.com/test?a=b&c=d');
|
|
});
|
|
|
|
it('should handle ips', function() {
|
|
expect(WS.buildUrl('http', '1.2.3.4')).toBe('http://1.2.3.4');
|
|
expect(WS.buildUrl('http', '1:2::3:4')).toBe('http://[1:2::3:4]');
|
|
});
|
|
|
|
it('should handle bogus', function() {
|
|
expect(WS.buildUrl('http', 'bog][us')).toBe('http://bog%5D%5Bus');
|
|
expect(WS.buildUrl('http', 'bog:u]s')).toBe('http://bog%3Au%5Ds');
|
|
});
|
|
|
|
});
|