1 | 'use strict';
|
2 |
|
3 | module.exports = function (t, a) {
|
4 | var x, y;
|
5 |
|
6 | a(t('test'), 'test', "Plain");
|
7 | a(t('test', 'foo', 3, { toString: function () { return 'bar'; } }),
|
8 | 'test foo 3 bar', "Plain: Many args");
|
9 |
|
10 | a(t.red('foo'), '\x1b[31mfoo\x1b[39m', "Foreground");
|
11 | a(t.red('foo', 'bar', 3), '\x1b[31mfoo bar 3\x1b[39m',
|
12 | "Foreground: Many args");
|
13 | a(t.red.yellow('foo', 'bar', 3), '\x1b[33mfoo bar 3\x1b[39m',
|
14 | "Foreground: Overriden");
|
15 | a(t.bgRed('foo', 'bar'), '\x1b[41mfoo bar\x1b[49m', "Background");
|
16 | a(t.bgRed.bgYellow('foo', 'bar', 3), '\x1b[43mfoo bar 3\x1b[49m',
|
17 | "Background: Overriden");
|
18 |
|
19 | a(t.blue.bgYellow('foo', 'bar'), '\x1b[43m\x1b[34mfoo bar\x1b[39m\x1b[49m',
|
20 | "Foreground & Background");
|
21 | a(t.blue.bgYellow.red.bgMagenta('foo', 'bar'),
|
22 | '\x1b[45m\x1b[31mfoo bar\x1b[39m\x1b[49m',
|
23 | "Foreground & Background: Overriden");
|
24 |
|
25 | a(t.bold('foo', 'bar'), '\x1b[1mfoo bar\x1b[22m', "Format");
|
26 | a(t.blink('foobar'), '\x1b[5mfoobar\x1b[25m', "Format: blink");
|
27 | a(t.bold.blue('foo', 'bar', 3), '\x1b[1m\x1b[34mfoo bar 3\x1b[39m\x1b[22m',
|
28 | "Foreground & Format");
|
29 |
|
30 | a(t.redBright('foo', 'bar'), '\x1b[91mfoo bar\x1b[39m', "Bright");
|
31 | a(t.bgRedBright('foo', 3), '\x1b[101mfoo 3\x1b[49m', "Bright background");
|
32 |
|
33 | a(t.blueBright.bgYellowBright.red.bgMagenta('foo', 'bar'),
|
34 | '\x1b[45m\x1b[31mfoo bar\x1b[39m\x1b[49m',
|
35 | "Foreground & Background: Bright: Overriden");
|
36 |
|
37 | x = t.red;
|
38 | y = x.bold;
|
39 |
|
40 | a(x('foo', 'red') + ' ' + y('foo', 'boldred'),
|
41 | '\x1b[31mfoo red\x1b[39m \x1b[1m\x1b[31mfoo boldred\x1b[39m\x1b[22m',
|
42 | "Detached extension");
|
43 |
|
44 | if (t.xtermSupported) {
|
45 | a(t.xterm(12).bgXterm(67)('foo', 'xterm'),
|
46 | '\x1b[48;5;67m\x1b[38;5;12mfoo xterm\x1b[39m\x1b[49m', "Xterm");
|
47 |
|
48 | a(t.redBright.bgBlueBright.xterm(12).bgXterm(67)('foo', 'xterm'),
|
49 | '\x1b[48;5;67m\x1b[38;5;12mfoo xterm\x1b[39m\x1b[49m',
|
50 | "Xterm: Override & Bright");
|
51 | a(t.xterm(12).bgXterm(67).redBright.bgMagentaBright('foo', 'xterm'),
|
52 | '\x1b[105m\x1b[91mfoo xterm\x1b[39m\x1b[49m',
|
53 | "Xterm: Override & Bright #2");
|
54 | } else {
|
55 | a(t.xterm(12).bgXterm(67)('foo', 'xterm'),
|
56 | '\x1b[100m\x1b[94mfoo xterm\x1b[39m\x1b[49m', "Xterm");
|
57 | }
|
58 |
|
59 | a(typeof t.width, 'number', "Width");
|
60 | a(typeof t.height, 'number', "Height");
|
61 |
|
62 | a(/\n*\x1bc/.test(t.reset), true, "Reset");
|
63 |
|
64 | a(t.up(), '', "Up: No argument");
|
65 | a(t.up({}), '', "Up: Not a number");
|
66 | a(t.up(-34), '', "Up: Negative");
|
67 | a(t.up(34), '\x1b[34A', "Up: Positive");
|
68 |
|
69 | a(t.down(), '', "Down: No argument");
|
70 | a(t.down({}), '', "Down: Not a number");
|
71 | a(t.down(-34), '', "Down: Negative");
|
72 | a(t.down(34), '\x1b[34B', "Down: Positive");
|
73 |
|
74 | a(t.right(), '', "Right: No argument");
|
75 | a(t.right({}), '', "Right: Not a number");
|
76 | a(t.right(-34), '', "Right: Negative");
|
77 | a(t.right(34), '\x1b[34C', "Right: Positive");
|
78 |
|
79 | a(t.left(), '', "Left: No argument");
|
80 | a(t.left({}), '', "Left: Not a number");
|
81 | a(t.left(-34), '', "Left: Negative");
|
82 | a(t.left(34), '\x1b[34D', "Left: Positive");
|
83 |
|
84 | a(t.move(), '', "Move: No arguments");
|
85 | a(t.move({}, {}), '', "Move: Bad arguments");
|
86 | a(t.move({}, 12), '\x1b[12B', "Move: One direction");
|
87 | a(t.move(0, -12), '\x1b[12A', "Move: One negative direction");
|
88 | a(t.move(-42, -2), '\x1b[42D\x1b[2A', "Move: two negatives");
|
89 | a(t.move(2, 35), '\x1b[2C\x1b[35B', "Move: two positives");
|
90 |
|
91 | a(t.moveTo(), '\x1b[1;1H', "MoveTo: No arguments");
|
92 | a(t.moveTo({}, {}), '\x1b[1;1H', "MoveTo: Bad arguments");
|
93 | a(t.moveTo({}, 12), '\x1b[13;1H', "MoveTo: One direction");
|
94 | a(t.moveTo(2, -12), '\x1b[1;3H', "MoveTo: One negative direction");
|
95 | a(t.moveTo(-42, -2), '\x1b[1;1H', "MoveTo: two negatives");
|
96 | a(t.moveTo(2, 35), '\x1b[36;3H', "MoveTo: two positives");
|
97 |
|
98 | a(t.bol(), '\x1b[0E', "Bol: No argument");
|
99 | a(t.bol({}), '\x1b[0E', "Bol: Not a number");
|
100 | a(t.bol(-34), '\x1b[34F', "Bol: Negative");
|
101 | a(t.bol(34), '\x1b[34E', "Bol: Positive");
|
102 |
|
103 | a(t.bol({}, true), '\x1b[0E\x1bK', "Bol: Erase: Not a number");
|
104 | a(t.bol(-2, true), '\x1b[0E\x1bK\x1b[1F\x1b[K\x1b[1F\x1b[K',
|
105 | "Bol: Erase: Negative");
|
106 | a(t.bol(2, true), '\x1b[1E\x1b[K\x1b[1E\x1b[K',
|
107 | "Bol: Erase: Positive");
|
108 |
|
109 | a(t.beep, '\x07', "Beep");
|
110 | };
|