@@ -472,6 +472,76 @@ describe("parseTime", function () {
472
472
} ) ;
473
473
} ) ;
474
474
475
+ describe ( "parseLength" , function ( ) {
476
+ it ( "raises exception for invalid input" , function ( ) {
477
+ var p = function ( ) {
478
+ utils . parseLength ( "abc" ) ;
479
+ } ;
480
+ expect ( p ) . toThrow ( ) ;
481
+ } ) ;
482
+
483
+ it ( "handles pixel lengths" , function ( ) {
484
+ expect ( utils . parseLength ( "10px" ) ) . toBe ( 10 ) ;
485
+ expect ( utils . parseLength ( "100px" ) ) . toBe ( 100 ) ;
486
+ expect ( utils . parseLength ( "1000.1px" ) ) . toBe ( 1000 ) ;
487
+ expect ( utils . parseLength ( "1000.9px" ) ) . toBe ( 1001 ) ;
488
+
489
+ expect ( utils . parseLength ( "10 px" ) ) . toBe ( 10 ) ;
490
+ } ) ;
491
+
492
+ it ( "handles percent lengths" , function ( ) {
493
+ expect ( utils . parseLength ( "10%" , 1 ) ) . toBe ( 0.1 ) ;
494
+ expect ( utils . parseLength ( "10%" , 10 ) ) . toBe ( 1 ) ;
495
+ expect ( utils . parseLength ( "10%" , 100 ) ) . toBe ( 10 ) ;
496
+ expect ( utils . parseLength ( "10%" , 1000 ) ) . toBe ( 100 ) ;
497
+
498
+ expect ( utils . parseLength ( "10.1%" , 100 ) ) . toBe ( 10 ) ;
499
+ expect ( utils . parseLength ( "10.9%" , 100 ) ) . toBe ( 11 ) ;
500
+
501
+ expect ( utils . parseLength ( "10 %" , 100 ) ) . toBe ( 10 ) ;
502
+ } ) ;
503
+
504
+ it ( "handles vw lengths" , function ( ) {
505
+ jest . replaceProperty ( window , "innerWidth" , 1000 ) ;
506
+
507
+ expect ( utils . parseLength ( "1vw" ) ) . toBe ( 10 ) ;
508
+ expect ( utils . parseLength ( "10vw" ) ) . toBe ( 100 ) ;
509
+ expect ( utils . parseLength ( "100vw" ) ) . toBe ( 1000 ) ;
510
+
511
+ expect ( utils . parseLength ( "10 vw" ) ) . toBe ( 100 ) ;
512
+ } ) ;
513
+
514
+ it ( "handles vh lengths" , function ( ) {
515
+ jest . replaceProperty ( window , "innerHeight" , 1000 ) ;
516
+
517
+ expect ( utils . parseLength ( "1vh" ) ) . toBe ( 10 ) ;
518
+ expect ( utils . parseLength ( "10vh" ) ) . toBe ( 100 ) ;
519
+ expect ( utils . parseLength ( "100vh" ) ) . toBe ( 1000 ) ;
520
+
521
+ expect ( utils . parseLength ( "10 vh" ) ) . toBe ( 100 ) ;
522
+ } ) ;
523
+
524
+ it ( "handles vmin lengths" , function ( ) {
525
+ jest . replaceProperty ( window , "innerHeight" , 100 ) ;
526
+ jest . replaceProperty ( window , "innerWidth" , 200 ) ;
527
+ expect ( utils . parseLength ( "10vmin" ) ) . toBe ( 10 ) ;
528
+
529
+ jest . replaceProperty ( window , "innerHeight" , 100 ) ;
530
+ jest . replaceProperty ( window , "innerWidth" , 50 ) ;
531
+ expect ( utils . parseLength ( "10vmin" ) ) . toBe ( 5 ) ;
532
+ } ) ;
533
+
534
+ it ( "handles vmax lengths" , function ( ) {
535
+ jest . replaceProperty ( window , "innerHeight" , 100 ) ;
536
+ jest . replaceProperty ( window , "innerWidth" , 200 ) ;
537
+ expect ( utils . parseLength ( "10vmax" ) ) . toBe ( 20 ) ;
538
+
539
+ jest . replaceProperty ( window , "innerHeight" , 100 ) ;
540
+ jest . replaceProperty ( window , "innerWidth" , 50 ) ;
541
+ expect ( utils . parseLength ( "10vmax" ) ) . toBe ( 10 ) ;
542
+ } ) ;
543
+ } ) ;
544
+
475
545
describe ( "get_bounds" , function ( ) {
476
546
it ( "returns the bounds values as integer numbers instead of double/float values." , ( ) => {
477
547
const el = document . createElement ( "div" ) ;
0 commit comments