public
Description: Fleegix.js provides an extremely lightweight, cross-browser set of JavaScript tools for building dynamic Web-app UIs.
Homepage: http://js.fleegix.org
Clone URL: git://github.com/mde/fleegix-js-javascript-toolkit.git
commit  c3f3468fc6b198035bce0632458bf15bfc9cc3cb
tree    00859ada505979fb6cabc55f6f553c59f09b1866
parent  f7c2afcdd3d62944d3c7b60501135cb429d298ee
100644 99 lines (93 sloc) 3.184 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
fleegixMain.test_fleegixUrl = new function () {
  this.test_getQS = function () {
    var q = fleegix.url.getQS;
    var s = 'asdf=qwer&zxcv=uiop';
    var u = 'http://foo.bar/';
    jum.assertEquals(s, q(u + '?' + s));
    jum.assertEquals(s, q(u + ';' + s));
    jum.assertEquals(s, q('?' + s));
    jum.assertEquals(s, q(';' + s));
  };
  this.test_getBase = function () {
    var b = fleegix.url.getBase;
    var s = 'asdf=qwer&zxcv=uiop';
    var u = 'http://foo.bar/';
    jum.assertEquals(u, b(u + '?' + s));
    jum.assertEquals(u, b(u + ';' + s));
    jum.assertEquals(u, b(u));
  };
  this.test_getQSParam = function () {
    var g = fleegix.url.getQSParam;
    var s = 'asdf=qwer&zxcv=uiop';
    var u = 'http://foo.bar/?';
    jum.assertEquals('qwer', g(u + s, 'asdf'));
    jum.assertEquals('uiop', g(u + s, 'zxcv'));
    jum.assertEquals('qwer', g(s, 'asdf'));
    jum.assertEquals('uiop', g(s, 'zxcv'));
  };
  this.test_setQSParam = function () {
    var s = fleegix.url.setQSParam;
    var g = fleegix.url.getQSParam;
    var orig = 'http://foo.bar/?asdf=qwer&zxcv=uiop';
    var n;
    n = s(orig, 'asdf', 'QWER');
    jum.assertEquals('QWER', g(n, 'asdf'));
    n = s(orig, 'zxcv', 'UIOP');
    jum.assertEquals('UIOP', g(n, 'zxcv'));
  };
  this.test_removeQSParam = function () {
    var r = fleegix.url.removeQSParam;
    var base = 'http://foo.bar/';
    var qs = 'asdf=qwer&zxcv=uiop'
    var n;
    url = base + '?' + qs
    n = r(url, 'asdf');
    jum.assertEquals(base + '?zxcv=uiop', n);
    n = r(url, 'zxcv');
    jum.assertEquals(base + '?asdf=qwer', n);
    url = base + ';' + qs
    n = r(url, 'asdf');
    jum.assertEquals(base + ';zxcv=uiop', n);
    n = r(url, 'zxcv');
    jum.assertEquals(base + ';asdf=qwer', n);
    n = r(qs, 'asdf');
    jum.assertEquals('zxcv=uiop', n);
    n = r(qs, 'zxcv');
    jum.assertEquals('asdf=qwer', n);
  };
  // Test backward compatibility shims
  this.test_uriGetQueryBackwardCompat = function () {
    var q = fleegix.uri.getQuery;
    var s = 'asdf=qwer&zxcv=uiop';
    var u = 'http://foo.bar/';
    jum.assertEquals(s, q(u + '?' + s));
    jum.assertEquals(s, q(u + ';' + s));
    jum.assertEquals(s, q('?' + s));
    jum.assertEquals(s, q(';' + s));
 
  }
  this.test_uriGetParamBackwardCompat = function () {
    var g = fleegix.uri.getParam;
    var s = 'asdf=qwer&zxcv=uiop';
    var u = 'http://foo.bar/?';
    // Params are reversed, and passed-in QS is
    // optional -- defaults to local HREF for the
    // page it's defined on
    jum.assertEquals('qwer', g('asdf', u + s));
    jum.assertEquals('uiop', g('zxcv', u + s));
    jum.assertEquals('qwer', g('asdf', s));
    jum.assertEquals('uiop', g('zxcv', s));
  };
  this.test_uriSetParamBackwardCompat = function () {
    var s = fleegix.uri.setParam;
    var g = fleegix.url.getQSParam;
    var orig = 'http://foo.bar/?asdf=qwer&zxcv=uiop';
    var n;
    // Params are reversed, and passed-in QS is
    // optional -- defaults to local HREF for the
    // page it's defined on
    n = s('asdf', 'QWER', orig);
    jum.assertEquals('QWER', g(n, 'asdf'));
    n = s('zxcv', 'UIOP', orig);
    jum.assertEquals('UIOP', g(n, 'zxcv'));
  };
 
};