Upgrade to ExtJS 4.0.1 - Released 05/18/2011
[extjs.git] / jsbuilder / tests / parser.js
1 Loader.require('Parser');
2 Loader.require('Filesystem');
3
4 Parser.setParams({
5     browser: 'ie',
6     browserVersion: 6,
7     version: 3.1,
8     minVersion: 2.0,
9     debug: true
10 });
11
12 assertTrue("Browser is IE", Parser.evaluate('browser', 'ie'));
13 assertTrue("Browser is not firefox", Parser.evaluate('browser', '!firefox'));
14 assertTrue("Browser version is greater than 5", Parser.evaluate('browserVersion', '>5'));
15 assertTrue("Browser version is less than 7", Parser.evaluate('browserVersion', '<7'));
16 assertTrue("Browser version is greater or equal to 6", Parser.evaluate('browserVersion', '>=6'));
17 assertFalse("Nonexistent", Parser.evaluate('nonexistent'));
18
19 assertTrue("//<if browser=ie> is a valid statement", Parser.isStatement('//<if browser=ie>'));
20 assertTrue("    //<if browser=ie> (tab in front) is a valid statement", Parser.isStatement('    //<if browser=ie>'));
21 assertTrue("//<if browser=ie> (spaces at the end) is a valid statement", Parser.isStatement('//<if browser=ie>      '));
22
23 assertFalse("//</if> is not a valid opening statement", Parser.isStatement('//</if>'));
24 assertTrue("//</if> is valid close of if", Parser.isCloseOf('//</if>', { type: 'if', isInverted: false }));
25 assertTrue("//</!if> is valid close of inverted if", Parser.isCloseOf('//</!if>', { type: 'if', isInverted: true }));
26
27 assertEqual("Parser.parseStatementProperties('browser=ie debug')",
28     Parser.parseStatementProperties('browser=ie debug'), { browser: 'ie', debug: true });
29
30 assertEqual("Parser.parseStatementProperties('browser=\"ie\" browserVersion='!7' debug=false')",
31     Parser.parseStatementProperties('browser="ie" browserVersion=\'!7\' debug=false'), { browser: 'ie', browserVersion: '!7', debug: "false" });
32
33 assertEqual("Parser.parseStatement('//<deprecated since=\"3.0\">')",
34     Parser.parseStatement('//<deprecated since="3.0">'), { properties: { since: '3.0' }, type: 'deprecated', isInverted: false });
35
36 assertEqual("Parser.parse before1.js and after1.js",
37     Parser.parse(PATH + 'tests/parser/before1.js'), Filesystem.readFile(PATH + 'tests/parser/after1.js'));
38
39 assertEqual("Parser.parse before2.js and after2.js",
40     Parser.parse(PATH + 'tests/parser/before2.js'), Filesystem.readFile(PATH + 'tests/parser/after2.js'));
41
42 Parser.setParams({
43     debug: true,
44     debugLevel: 2
45 });
46
47 assertEqual("Parser.parse before3.js and after3.js",
48     Parser.parse(PATH + 'tests/parser/before3.js'), Filesystem.readFile(PATH + 'tests/parser/after3.js'));
49
50 assertEqual("Parser.parse before4.js and after4.js",
51     Parser.parse(PATH + 'tests/parser/before4.js'), Filesystem.readFile(PATH + 'tests/parser/after4.js'));