@@ -88,6 +88,101 @@ describe('xterm.js', function() {
8888 } ) ;
8989 } ) ;
9090
91+ describe ( 'scroll' , function ( ) {
92+ describe ( 'scrollDisp' , function ( ) {
93+ var startYDisp ;
94+ beforeEach ( function ( ) {
95+ for ( var i = 0 ; i < xterm . rows * 2 ; i ++ ) {
96+ xterm . writeln ( 'test' ) ;
97+ }
98+ startYDisp = xterm . rows + 1 ;
99+ } ) ;
100+ it ( 'should scroll a single line' , function ( ) {
101+ assert . equal ( xterm . ydisp , startYDisp ) ;
102+ xterm . scrollDisp ( - 1 ) ;
103+ assert . equal ( xterm . ydisp , startYDisp - 1 ) ;
104+ xterm . scrollDisp ( 1 ) ;
105+ assert . equal ( xterm . ydisp , startYDisp ) ;
106+ } ) ;
107+ it ( 'should scroll multiple lines' , function ( ) {
108+ assert . equal ( xterm . ydisp , startYDisp ) ;
109+ xterm . scrollDisp ( - 5 ) ;
110+ assert . equal ( xterm . ydisp , startYDisp - 5 ) ;
111+ xterm . scrollDisp ( 5 ) ;
112+ assert . equal ( xterm . ydisp , startYDisp ) ;
113+ } ) ;
114+ it ( 'should not scroll beyond the bounds of the buffer' , function ( ) {
115+ assert . equal ( xterm . ydisp , startYDisp ) ;
116+ xterm . scrollDisp ( 1 ) ;
117+ assert . equal ( xterm . ydisp , startYDisp ) ;
118+ for ( var i = 0 ; i < startYDisp ; i ++ ) {
119+ xterm . scrollDisp ( - 1 ) ;
120+ }
121+ assert . equal ( xterm . ydisp , 0 ) ;
122+ xterm . scrollDisp ( - 1 ) ;
123+ assert . equal ( xterm . ydisp , 0 ) ;
124+ } ) ;
125+ } ) ;
126+
127+ describe ( 'scrollPages' , function ( ) {
128+ var startYDisp ;
129+ beforeEach ( function ( ) {
130+ for ( var i = 0 ; i < xterm . rows * 3 ; i ++ ) {
131+ xterm . writeln ( 'test' ) ;
132+ }
133+ startYDisp = ( xterm . rows * 2 ) + 1 ;
134+ } ) ;
135+ it ( 'should scroll a single page' , function ( ) {
136+ assert . equal ( xterm . ydisp , startYDisp ) ;
137+ xterm . scrollPages ( - 1 ) ;
138+ assert . equal ( xterm . ydisp , startYDisp - ( xterm . rows - 1 ) ) ;
139+ xterm . scrollPages ( 1 ) ;
140+ assert . equal ( xterm . ydisp , startYDisp ) ;
141+ } ) ;
142+ it ( 'should scroll a multiple pages' , function ( ) {
143+ assert . equal ( xterm . ydisp , startYDisp ) ;
144+ xterm . scrollPages ( - 2 ) ;
145+ assert . equal ( xterm . ydisp , startYDisp - ( xterm . rows - 1 ) * 2 ) ;
146+ xterm . scrollPages ( 2 ) ;
147+ assert . equal ( xterm . ydisp , startYDisp ) ;
148+ } ) ;
149+ } ) ;
150+
151+ describe ( 'scrollToTop' , function ( ) {
152+ beforeEach ( function ( ) {
153+ for ( var i = 0 ; i < xterm . rows * 3 ; i ++ ) {
154+ xterm . writeln ( 'test' ) ;
155+ }
156+ } ) ;
157+ it ( 'should scroll to the top' , function ( ) {
158+ assert . notEqual ( xterm . ydisp , 0 ) ;
159+ xterm . scrollToTop ( ) ;
160+ assert . equal ( xterm . ydisp , 0 ) ;
161+ } ) ;
162+ } ) ;
163+
164+ describe ( 'scrollToBottom' , function ( ) {
165+ var startYDisp ;
166+ beforeEach ( function ( ) {
167+ for ( var i = 0 ; i < xterm . rows * 3 ; i ++ ) {
168+ xterm . writeln ( 'test' ) ;
169+ }
170+ startYDisp = ( xterm . rows * 2 ) + 1 ;
171+ } ) ;
172+ it ( 'should scroll to the bottom' , function ( ) {
173+ xterm . scrollDisp ( - 1 ) ;
174+ xterm . scrollToBottom ( ) ;
175+ assert . equal ( xterm . ydisp , startYDisp ) ;
176+ xterm . scrollPages ( - 1 ) ;
177+ xterm . scrollToBottom ( ) ;
178+ assert . equal ( xterm . ydisp , startYDisp ) ;
179+ xterm . scrollToTop ( ) ;
180+ xterm . scrollToBottom ( ) ;
181+ assert . equal ( xterm . ydisp , startYDisp ) ;
182+ } ) ;
183+ } ) ;
184+ } ) ;
185+
91186 describe ( 'evaluateKeyEscapeSequence' , function ( ) {
92187 it ( 'should return the correct escape sequence for unmodified keys' , function ( ) {
93188 // Backspace
0 commit comments