Просмотр исходного кода

found and fixed a bug in TopNav.collapseBar() while writing test for it

El RIDO 8 лет назад
Родитель
Сommit
76debde85b
4 измененных файлов с 50 добавлено и 7 удалено
  1. 3 5
      js/privatebin.js
  2. 45 0
      js/test/TopNav.js
  3. 1 1
      tpl/bootstrap.php
  4. 1 1
      tpl/page.php

+ 3 - 5
js/privatebin.js

@@ -2557,6 +2557,7 @@ jQuery.PrivateBin = (function($, sjcl, Base64, RawDeflate) {
          * Shows the QR code of the current paste (URL).
          * Shows the QR code of the current paste (URL).
          *
          *
          * @name   TopNav.displayQrCode
          * @name   TopNav.displayQrCode
+         * @private
          * @function
          * @function
          */
          */
         function displayQrCode()
         function displayQrCode()
@@ -2736,12 +2737,9 @@ jQuery.PrivateBin = (function($, sjcl, Base64, RawDeflate) {
          */
          */
         me.collapseBar = function()
         me.collapseBar = function()
         {
         {
-            var $bar = $('.navbar-toggle');
-
-            // check if bar is expanded
-            if ($bar.hasClass('collapse in')) {
+            if ($('#navbar').attr('aria-expanded')) {
                 // if so, toggle it
                 // if so, toggle it
-                $bar.click();
+                $('.navbar-toggle').click();
             }
             }
         };
         };
 
 

+ 45 - 0
js/test/TopNav.js

@@ -271,5 +271,50 @@ describe('TopNav', function () {
             }
             }
         );
         );
     });
     });
+
+    describe('collapseBar', function () {
+        before(function () {
+            cleanup();
+        });
+
+        it(
+            'collapses the navigation when displayed on a small screen',
+            function () {
+                var results = [];
+                $('body').html(
+                    '<nav><div class="navbar-header"><button type="button" ' +
+                    'class="navbar-toggle collapsed" data-toggle="collapse" ' +
+                    'data-target="#navbar" aria-expanded="false" aria-controls' +
+                    '="navbar">Toggle navigation</button><a class="reloadlink ' +
+                    'navbar-brand" href=""><img alt="PrivateBin" ' +
+                    'src="img/icon.svg" width="38" /></a></div><div ' +
+                    'id="navbar"><ul><li><button id="newbutton" type=' +
+                    '"button" class="hidden">New</button></li></ul></div></nav>'
+                );
+                $.PrivateBin.TopNav.init();
+                results.push(
+                    $('.navbar-toggle').hasClass('collapsed') &&
+                    $('#navbar').attr('aria-expanded') != 'true'
+                );
+                $.PrivateBin.TopNav.collapseBar();
+                results.push(
+                    $('.navbar-toggle').hasClass('collapsed') &&
+                    $('#navbar').attr('aria-expanded') != 'true'
+                );
+                $('.navbar-toggle').click();
+                results.push(
+                    !$('.navbar-toggle').hasClass('collapsed') &&
+                    $('#navbar').attr('aria-expanded') == 'true'
+                );
+                $.PrivateBin.TopNav.collapseBar();
+                results.push(
+                    $('.navbar-toggle').hasClass('collapsed') &&
+                    $('#navbar').attr('aria-expanded') == 'false'
+                );
+                cleanup();
+                assert.ok(results.every(element => element));
+            }
+        );
+    });
 });
 });
 
 

+ 1 - 1
tpl/bootstrap.php

@@ -75,7 +75,7 @@ if ($MARKDOWN):
 <?php
 <?php
 endif;
 endif;
 ?>
 ?>
-		<script type="text/javascript" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-Z3SG68lkzr8/Hg8goFersCg5T8qrI2dUKDCRnlA6uZanWLiKRCBBX8gNHgjSdPp/+XC3fFFTGL3KCZFgCXXdtQ==" crossorigin="anonymous"></script>
+		<script type="text/javascript" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-4UWESerlTU/BJPR9ew+ILaiLunjhQa+9asT2/1MY2zQ2dSxnJ3orDUFOq4CU+KrnkK/9sWwmUobshOUGkVMygQ==" crossorigin="anonymous"></script>
 		<!--[if lt IE 10]>
 		<!--[if lt IE 10]>
 		<style type="text/css">body {padding-left:60px;padding-right:60px;} #ienotice {display:block;} #oldienotice {display:block;}</style>
 		<style type="text/css">body {padding-left:60px;padding-right:60px;} #ienotice {display:block;} #oldienotice {display:block;}</style>
 		<![endif]-->
 		<![endif]-->

+ 1 - 1
tpl/page.php

@@ -54,7 +54,7 @@ if ($QRCODE):
 <?php
 <?php
 endif;
 endif;
 ?>
 ?>
-		<script type="text/javascript" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-Z3SG68lkzr8/Hg8goFersCg5T8qrI2dUKDCRnlA6uZanWLiKRCBBX8gNHgjSdPp/+XC3fFFTGL3KCZFgCXXdtQ==" crossorigin="anonymous"></script>
+		<script type="text/javascript" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-4UWESerlTU/BJPR9ew+ILaiLunjhQa+9asT2/1MY2zQ2dSxnJ3orDUFOq4CU+KrnkK/9sWwmUobshOUGkVMygQ==" crossorigin="anonymous"></script>
 		<!--[if lt IE 10]>
 		<!--[if lt IE 10]>
 		<style type="text/css">body {padding-left:60px;padding-right:60px;} #ienotice {display:block;} #oldienotice {display:block;}</style>
 		<style type="text/css">body {padding-left:60px;padding-right:60px;} #ienotice {display:block;} #oldienotice {display:block;}</style>
 		<![endif]-->
 		<![endif]-->