@@ -32,100 +32,104 @@ function FakeInput() {
32
32
inherits ( FakeInput , EventEmitter ) ;
33
33
FakeInput . prototype . resume = function ( ) { } ;
34
34
FakeInput . prototype . pause = function ( ) { } ;
35
+ FakeInput . prototype . write = function ( ) { } ;
36
+ FakeInput . prototype . end = function ( ) { } ;
35
37
36
- var fi ;
37
- var rli ;
38
- var called ;
38
+ [ true , false ] . forEach ( function ( terminal ) {
39
+ var fi ;
40
+ var rli ;
41
+ var called ;
39
42
40
- // sending a full line
41
- fi = new FakeInput ( ) ;
42
- rli = new readline . Interface ( fi , { } ) ;
43
- called = false ;
44
- rli . on ( 'line' , function ( line ) {
45
- called = true ;
46
- assert . equal ( line , 'asdf' ) ;
47
- } ) ;
48
- fi . emit ( 'data' , 'asdf\n' ) ;
49
- assert . ok ( called ) ;
43
+ // sending a full line
44
+ fi = new FakeInput ( ) ;
45
+ rli = new readline . Interface ( { input : fi , output : fi , terminal : terminal } ) ;
46
+ called = false ;
47
+ rli . on ( 'line' , function ( line ) {
48
+ called = true ;
49
+ assert . equal ( line , 'asdf' ) ;
50
+ } ) ;
51
+ fi . emit ( 'data' , 'asdf\n' ) ;
52
+ assert . ok ( called ) ;
50
53
51
- // sending a blank line
52
- fi = new FakeInput ( ) ;
53
- rli = new readline . Interface ( fi , { } ) ;
54
- called = false ;
55
- rli . on ( 'line' , function ( line ) {
56
- called = true ;
57
- assert . equal ( line , '' ) ;
58
- } ) ;
59
- fi . emit ( 'data' , '\n' ) ;
60
- assert . ok ( called ) ;
54
+ // sending a blank line
55
+ fi = new FakeInput ( ) ;
56
+ rli = new readline . Interface ( { input : fi , output : fi , terminal : terminal } ) ;
57
+ called = false ;
58
+ rli . on ( 'line' , function ( line ) {
59
+ called = true ;
60
+ assert . equal ( line , '' ) ;
61
+ } ) ;
62
+ fi . emit ( 'data' , '\n' ) ;
63
+ assert . ok ( called ) ;
61
64
62
- // sending a single character with no newline
63
- fi = new FakeInput ( ) ;
64
- rli = new readline . Interface ( fi , { } ) ;
65
- called = false ;
66
- rli . on ( 'line' , function ( line ) {
67
- called = true ;
68
- } ) ;
69
- fi . emit ( 'data' , 'a' ) ;
70
- assert . ok ( ! called ) ;
71
- rli . close ( ) ;
65
+ // sending a single character with no newline
66
+ fi = new FakeInput ( ) ;
67
+ rli = new readline . Interface ( fi , { } ) ;
68
+ called = false ;
69
+ rli . on ( 'line' , function ( line ) {
70
+ called = true ;
71
+ } ) ;
72
+ fi . emit ( 'data' , 'a' ) ;
73
+ assert . ok ( ! called ) ;
74
+ rli . close ( ) ;
72
75
73
- // sending a single character with no newline and then a newline
74
- fi = new FakeInput ( ) ;
75
- rli = new readline . Interface ( fi , { } ) ;
76
- called = false ;
77
- rli . on ( 'line' , function ( line ) {
78
- called = true ;
79
- assert . equal ( line , 'a' ) ;
80
- } ) ;
81
- fi . emit ( 'data' , 'a' ) ;
82
- assert . ok ( ! called ) ;
83
- fi . emit ( 'data' , '\n' ) ;
84
- assert . ok ( called ) ;
85
- rli . close ( ) ;
76
+ // sending a single character with no newline and then a newline
77
+ fi = new FakeInput ( ) ;
78
+ rli = new readline . Interface ( { input : fi , output : fi , terminal : terminal } ) ;
79
+ called = false ;
80
+ rli . on ( 'line' , function ( line ) {
81
+ called = true ;
82
+ assert . equal ( line , 'a' ) ;
83
+ } ) ;
84
+ fi . emit ( 'data' , 'a' ) ;
85
+ assert . ok ( ! called ) ;
86
+ fi . emit ( 'data' , '\n' ) ;
87
+ assert . ok ( called ) ;
88
+ rli . close ( ) ;
86
89
87
- // sending multiple newlines at once
88
- fi = new FakeInput ( ) ;
89
- rli = new readline . Interface ( fi , { } ) ;
90
- var expectedLines = [ 'foo\n ' , 'bar\n ' , 'baz\n ' ] ;
91
- var callCount = 0 ;
92
- rli . on ( 'line' , function ( line ) {
93
- assert . equal ( line , expectedLines [ callCount ] ) ;
94
- callCount ++ ;
95
- } ) ;
96
- fi . emit ( 'data' , expectedLines . join ( '\n' ) + '\n' ) ;
97
- assert . equal ( callCount , expectedLines . length ) ;
98
- rli . close ( ) ;
90
+ // sending multiple newlines at once
91
+ fi = new FakeInput ( ) ;
92
+ rli = new readline . Interface ( { input : fi , output : fi , terminal : terminal } ) ;
93
+ var expectedLines = [ 'foo' , 'bar' , 'baz' ] ;
94
+ var callCount = 0 ;
95
+ rli . on ( 'line' , function ( line ) {
96
+ assert . equal ( line , expectedLines [ callCount ] ) ;
97
+ callCount ++ ;
98
+ } ) ;
99
+ fi . emit ( 'data' , expectedLines . join ( '\n' ) + '\n' ) ;
100
+ assert . equal ( callCount , expectedLines . length ) ;
101
+ rli . close ( ) ;
99
102
100
- // sending multiple newlines at once that does not end with a new line
101
- fi = new FakeInput ( ) ;
102
- rli = new readline . Interface ( fi , { } ) ;
103
- var expectedLines = [ 'foo\n ' , 'bar\n ' , 'baz\n ' , 'bat' ] ;
104
- var callCount = 0 ;
105
- rli . on ( 'line' , function ( line ) {
106
- assert . equal ( line , expectedLines [ callCount ] ) ;
107
- callCount ++ ;
108
- } ) ;
109
- fi . emit ( 'data' , expectedLines . join ( '\n' ) ) ;
110
- assert . equal ( callCount , expectedLines . length - 1 ) ;
111
- rli . close ( ) ;
103
+ // sending multiple newlines at once that does not end with a new line
104
+ fi = new FakeInput ( ) ;
105
+ rli = new readline . Interface ( { input : fi , output : fi , terminal : terminal } ) ;
106
+ expectedLines = [ 'foo' , 'bar' , 'baz' , 'bat' ] ;
107
+ callCount = 0 ;
108
+ rli . on ( 'line' , function ( line ) {
109
+ assert . equal ( line , expectedLines [ callCount ] ) ;
110
+ callCount ++ ;
111
+ } ) ;
112
+ fi . emit ( 'data' , expectedLines . join ( '\n' ) ) ;
113
+ assert . equal ( callCount , expectedLines . length - 1 ) ;
114
+ rli . close ( ) ;
112
115
113
- // sending a multi-byte utf8 char over multiple writes
114
- var buf = Buffer ( '☮' , 'utf8' ) ;
115
- fi = new FakeInput ( ) ;
116
- rli = new readline . Interface ( fi , { } ) ;
117
- callCount = 0 ;
118
- rli . on ( 'line' , function ( line ) {
119
- callCount ++ ;
120
- assert . equal ( line , buf . toString ( 'utf8' ) ) ;
121
- } ) ;
122
- [ ] . forEach . call ( buf , function ( i ) {
123
- fi . emit ( 'data' , Buffer ( [ i ] ) ) ;
124
- } ) ;
125
- assert . equal ( callCount , 0 ) ;
126
- fi . emit ( 'data' , '\n' ) ;
127
- assert . equal ( callCount , 1 ) ;
128
- rli . close ( ) ;
116
+ // sending a multi-byte utf8 char over multiple writes
117
+ var buf = Buffer ( '☮' , 'utf8' ) ;
118
+ fi = new FakeInput ( ) ;
119
+ rli = new readline . Interface ( { input : fi , output : fi , terminal : terminal } ) ;
120
+ callCount = 0 ;
121
+ rli . on ( 'line' , function ( line ) {
122
+ callCount ++ ;
123
+ assert . equal ( line , buf . toString ( 'utf8' ) ) ;
124
+ } ) ;
125
+ [ ] . forEach . call ( buf , function ( i ) {
126
+ fi . emit ( 'data' , Buffer ( [ i ] ) ) ;
127
+ } ) ;
128
+ assert . equal ( callCount , 0 ) ;
129
+ fi . emit ( 'data' , '\n' ) ;
130
+ assert . equal ( callCount , 1 ) ;
131
+ rli . close ( ) ;
129
132
130
- assert . deepEqual ( fi . listeners ( 'end' ) , [ ] ) ;
131
- assert . deepEqual ( fi . listeners ( 'data' ) , [ ] ) ;
133
+ assert . deepEqual ( fi . listeners ( 'end' ) , [ ] ) ;
134
+ assert . deepEqual ( fi . listeners ( terminal ? 'keypress' : 'data' ) , [ ] ) ;
135
+ } ) ;
0 commit comments