@@ -1185,4 +1185,70 @@ describe('uiScroll', function () {
11851185
11861186 } ) ;
11871187
1188+ describe ( 'adapter append/prepend clipping' , function ( ) {
1189+ var scrollSettings = { datasource : 'myOnePageDatasource' , adapter : 'adapter' , viewportHeight : 60 , itemHeight : 20 , bufferSize : 3 , padding : 1 } ;
1190+
1191+ it ( 'should not clip after 1 small pack appended' , function ( ) {
1192+ runTest ( scrollSettings ,
1193+ function ( viewport , scope ) {
1194+
1195+ expect ( scope . adapter . isEOF ( ) ) . toBe ( true ) ;
1196+ scope . adapter . append ( [ 'item1*' , 'item2*' , 'item3*' ] ) ;
1197+
1198+ expect ( scope . adapter . isEOF ( ) ) . toBe ( true ) ;
1199+ expect ( viewport . children ( ) . length ) . toBe ( 2 + 3 + 3 ) ;
1200+ var lastRow = viewport . children ( ) [ viewport . children ( ) . length - 2 ] ;
1201+ expect ( lastRow . innerHTML ) . toBe ( '6: item3*' ) ;
1202+ }
1203+ ) ;
1204+ } ) ;
1205+
1206+ it ( 'should clip 1 bottom item from the 1 big pack appended' , function ( ) {
1207+ runTest ( scrollSettings ,
1208+ function ( viewport , scope ) {
1209+
1210+ expect ( scope . adapter . isEOF ( ) ) . toBe ( true ) ;
1211+ scope . adapter . append ( [ 'item1*' , 'item2*' , 'item3*' , 'item4*' ] ) ;
1212+
1213+ expect ( scope . adapter . isEOF ( ) ) . toBe ( false ) ;
1214+
1215+ viewport . scrollTop ( 10000 ) ;
1216+ viewport . trigger ( 'scroll' ) ;
1217+
1218+ expect ( scope . adapter . isEOF ( ) ) . toBe ( true ) ;
1219+
1220+ expect ( viewport . children ( ) . length ) . toBe ( 2 + 3 + 3 ) ;
1221+ var lastRow = viewport . children ( ) [ viewport . children ( ) . length - 2 ] ;
1222+ expect ( lastRow . innerHTML ) . toBe ( '6: item3*' ) ;
1223+ }
1224+ ) ;
1225+ } ) ;
1226+
1227+ it ( 'should clip 1 pack from top after 3 packs appended' , function ( ) {
1228+ runTest ( scrollSettings ,
1229+ function ( viewport , scope ) {
1230+
1231+ scope . adapter . append ( [ 'item1*' , 'item2*' , 'item3*' , 'item4*' ] ) ;
1232+ expect ( viewport . children ( ) . length ) . toBe ( 2 + 3 + 3 ) ;
1233+ viewport . scrollTop ( 3 * 20 ) ;
1234+ viewport . trigger ( 'scroll' ) ;
1235+
1236+ scope . adapter . append ( [ 'item4*' , 'item5*' , 'item6*' , 'item7*' ] ) ;
1237+ expect ( viewport . children ( ) . length ) . toBe ( 2 + 3 + 3 + 3 ) ;
1238+ viewport . scrollTop ( 3 * 20 * 2 ) ;
1239+ viewport . trigger ( 'scroll' ) ;
1240+
1241+ scope . adapter . append ( [ 'item7*' , 'item8*' , 'item9*' , 'item10*' ] ) ;
1242+ expect ( viewport . children ( ) . length ) . toBe ( 2 + 3 + 3 + 3 ) ;
1243+
1244+ var firstRow = viewport . children ( ) [ 1 ] ;
1245+ expect ( firstRow . innerHTML ) . toBe ( '4: item1*' ) ;
1246+ var lastRow = viewport . children ( ) [ viewport . children ( ) . length - 2 ] ;
1247+ expect ( lastRow . innerHTML ) . toBe ( '12: item9*' ) ;
1248+ }
1249+ ) ;
1250+ } ) ;
1251+
1252+ } ) ;
1253+
11881254} ) ;
0 commit comments