DefinitelyTyped/types/jsuri/jsuri-tests.ts
2017-03-24 14:27:52 -07:00

83 lines
2.7 KiB
TypeScript

function test_createUri() {
var uri = new jsuri.Uri('http://user:pass@www.test.com:81/index.html?q=books#fragment');
var getTests = {
protocol: 'http' == uri.protocol(),
userInfo: 'user:pass' == uri.userInfo(),
host: 'www.test.com' == uri.host(),
port: 81 == uri.port(),
path: '/index.html' == uri.path(),
query: 'q=books' == uri.query(),
anchor: 'fragment' == uri.anchor()
};
uri.protocol('https');
var setProtocolTest = uri.toString() == 'https://user:pass@www.test.com:81/index.html?q=books#fragment';
uri.host('mydomain.com');
var setHostTest = uri.toString() == 'https://user:pass@mydomain.com:81/index.html?q=books#fragment';
}
function test_chainable() {
new jsuri.Uri()
.setPath('/archives/1979/')
.setQuery('?page=1'); // /archives/1979?page=1
new jsuri.Uri()
.setPath('/index.html')
.setAnchor('content')
.setHost('www.test.com')
.setPort(8080)
.setUserInfo('username:password')
.setProtocol('https')
.setQuery('this=that&some=thing'); // https://username:password@www.test.com:8080/index.html?this=that&some=thing#content
new jsuri.Uri('http://www.test.com')
.setHost('www.yahoo.com')
.setProtocol('https'); // https://www.yahoo.com
}
function test_queryParams() {
new jsuri.Uri('?cat=1&cat=2&cat=3').getQueryParamValue('cat'); // 1
new jsuri.Uri('?cat=1&cat=2&cat=3').getQueryParamValues('cat'); // [1, 2, 3]
new jsuri.Uri().addQueryParam('q', 'books'); // ?q=books
new jsuri.Uri('http://www.github.com')
.addQueryParam('testing', '123')
.addQueryParam('one', 1); // http://www.github.com/?testing=123&one=1
// insert param at index 0
new jsuri.Uri('?b=2&c=3&d=4').addQueryParam('a', '1', 0); // ?a=1&b=2&c=3&d=4
new jsuri.Uri().replaceQueryParam('page', 2); // ?page=2
new jsuri.Uri('?a=1&b=2&c=3')
.replaceQueryParam('a', 'eh'); // ?a=eh&b=2&c=3
new jsuri.Uri('?a=1&b=2&c=3&c=4&c=5&c=6')
.replaceQueryParam('c', 'five', '5'); // ?a=1&b=2&c=3&c=4&c=five&c=6
new jsuri.Uri('?a=1&b=2&c=3')
.deleteQueryParam('a'); // ?b=2&c=3
new jsuri.Uri('test.com?a=1&b=2&c=3&a=eh')
.deleteQueryParam('a', 'eh'); // test.com/?a=1&b=2&c=3
new jsuri.Uri('?a=1&b=2&c=3')
.hasQueryParam('a'); // true
new jsuri.Uri('?a=1&b=2&c=3')
.hasQueryParam('d'); // false
}
function test_clone() {
var baseUri = new jsuri.Uri('http://localhost/');
baseUri.clone().setProtocol('https'); // https://localhost/
baseUri; // http://localhost/
}