@@ -7,6 +7,7 @@ namespace Tvl.VisualStudio.MouseFastScroll.IntegrationTests
7
7
using System . Linq ;
8
8
using System . Windows ;
9
9
using System . Windows . Media ;
10
+ using Microsoft . VisualStudio . Text . Formatting ;
10
11
using WindowsInput ;
11
12
using WindowsInput . Native ;
12
13
using Xunit ;
@@ -70,6 +71,7 @@ public void BasicScrollingBehavior()
70
71
Assert . Equal ( 0 , firstVisibleLine ) ;
71
72
72
73
int lastVisibleLine = VisualStudio . Editor . GetLastVisibleLine ( ) ;
74
+ VisibilityState lastVisibleLineState = VisualStudio . Editor . GetLastVisibleLineState ( ) ;
73
75
Assert . True ( firstVisibleLine < lastVisibleLine ) ;
74
76
75
77
Point point = VisualStudio . Editor . GetCenterOfEditorOnScreen ( ) ;
@@ -81,30 +83,39 @@ public void BasicScrollingBehavior()
81
83
. MoveMouseTo ( point . X , point . Y )
82
84
. VerticalScroll ( - 1 ) ;
83
85
86
+ VisualStudio . WaitForApplicationIdle ( ) ;
87
+
84
88
Assert . Equal ( 0 , VisualStudio . Editor . GetCaretPosition ( ) ) ;
85
89
Assert . Equal ( 3 , VisualStudio . Editor . GetFirstVisibleLine ( ) ) ;
86
90
87
91
inputSimulator . Mouse
88
92
. MoveMouseTo ( point . X , point . Y )
89
93
. VerticalScroll ( 1 ) ;
90
94
95
+ VisualStudio . WaitForApplicationIdle ( ) ;
96
+
91
97
Assert . Equal ( 0 , VisualStudio . Editor . GetCaretPosition ( ) ) ;
92
98
Assert . Equal ( 0 , VisualStudio . Editor . GetFirstVisibleLine ( ) ) ;
93
99
94
100
inputSimulator
95
101
. Mouse . MoveMouseTo ( point . X , point . Y )
96
102
. Keyboard . KeyDown ( VirtualKeyCode . CONTROL )
97
103
. Mouse . VerticalScroll ( - 1 )
98
- . Keyboard . KeyUp ( VirtualKeyCode . CONTROL ) ;
104
+ . Keyboard . Sleep ( 10 ) . KeyUp ( VirtualKeyCode . CONTROL ) ;
99
105
106
+ VisualStudio . WaitForApplicationIdle ( ) ;
107
+
108
+ int expectedLastVisibleLine = lastVisibleLine + ( lastVisibleLineState == VisibilityState . FullyVisible ? 1 : 0 ) ;
100
109
Assert . Equal ( 0 , VisualStudio . Editor . GetCaretPosition ( ) ) ;
101
- Assert . Equal ( lastVisibleLine , VisualStudio . Editor . GetFirstVisibleLine ( ) ) ;
110
+ Assert . Equal ( expectedLastVisibleLine , VisualStudio . Editor . GetFirstVisibleLine ( ) ) ;
102
111
103
112
inputSimulator
104
113
. Mouse . MoveMouseTo ( point . X , point . Y )
105
114
. Keyboard . KeyDown ( VirtualKeyCode . CONTROL )
106
115
. Mouse . VerticalScroll ( 1 )
107
- . Keyboard . KeyUp ( VirtualKeyCode . CONTROL ) ;
116
+ . Keyboard . Sleep ( 10 ) . KeyUp ( VirtualKeyCode . CONTROL ) ;
117
+
118
+ VisualStudio . WaitForApplicationIdle ( ) ;
108
119
109
120
Assert . Equal ( 0 , VisualStudio . Editor . GetCaretPosition ( ) ) ;
110
121
Assert . Equal ( 0 , VisualStudio . Editor . GetFirstVisibleLine ( ) ) ;
@@ -144,6 +155,7 @@ public void ZoomDisabled()
144
155
Assert . Equal ( 0 , firstVisibleLine ) ;
145
156
146
157
int lastVisibleLine = VisualStudio . Editor . GetLastVisibleLine ( ) ;
158
+ VisibilityState lastVisibleLineState = VisualStudio . Editor . GetLastVisibleLineState ( ) ;
147
159
Assert . True ( firstVisibleLine < lastVisibleLine ) ;
148
160
149
161
double zoomLevel = VisualStudio . Editor . GetZoomLevel ( ) ;
@@ -157,19 +169,20 @@ public void ZoomDisabled()
157
169
. Mouse . MoveMouseTo ( point . X , point . Y )
158
170
. Keyboard . KeyDown ( VirtualKeyCode . CONTROL )
159
171
. Mouse . VerticalScroll ( - 1 )
160
- . Keyboard . KeyUp ( VirtualKeyCode . CONTROL ) ;
172
+ . Keyboard . Sleep ( 10 ) . KeyUp ( VirtualKeyCode . CONTROL ) ;
161
173
162
174
VisualStudio . WaitForApplicationIdle ( ) ;
163
175
176
+ int expectedLastVisibleLine = lastVisibleLine + ( lastVisibleLineState == VisibilityState . FullyVisible ? 1 : 0 ) ;
164
177
Assert . Equal ( 0 , VisualStudio . Editor . GetCaretPosition ( ) ) ;
165
- Assert . Equal ( lastVisibleLine , VisualStudio . Editor . GetFirstVisibleLine ( ) ) ;
178
+ Assert . Equal ( expectedLastVisibleLine , VisualStudio . Editor . GetFirstVisibleLine ( ) ) ;
166
179
Assert . Equal ( zoomLevel , VisualStudio . Editor . GetZoomLevel ( ) ) ;
167
180
168
181
inputSimulator
169
182
. Mouse . MoveMouseTo ( point . X , point . Y )
170
183
. Keyboard . KeyDown ( VirtualKeyCode . CONTROL )
171
184
. Mouse . VerticalScroll ( 1 )
172
- . Keyboard . KeyUp ( VirtualKeyCode . CONTROL ) ;
185
+ . Keyboard . Sleep ( 10 ) . KeyUp ( VirtualKeyCode . CONTROL ) ;
173
186
174
187
VisualStudio . WaitForApplicationIdle ( ) ;
175
188
0 commit comments