Dotclear

Changeset 1724:4cc223c99439 for tests


Ignore:
Timestamp:
09/04/13 21:55:21 (12 years ago)
Author:
Nicolas <nikrou77@…>
Branch:
default
Message:

[Tests] Add tests for media uploader
Refactoring of _media.js : put all code in a jquery plugin to make
it easy to test and to avoid polluting global namespace.
Use same jquery for tests and for admin

Need to add more tests for media uploader
Fix indentation for all js

Location:
tests/functional
Files:
3 added
6 edited

Legend:

Unmodified
Added
Removed
  • tests/functional/index.html

    r1703 r1724  
    77    <script type="text/javascript" src="lib/jasmine.js"></script> 
    88    <script type="text/javascript" src="lib/jasmine-html.js"></script> 
    9     <script type="text/javascript" src="lib/jquery.js"></script> 
     9    <!-- use same jquery --> 
     10    <script type="text/javascript" src="../../admin/js/jquery/jquery.js"></script> 
    1011    <script type="text/javascript" src="lib/jasmine-jquery.js"></script> 
    1112    <script type="text/javascript" src="lib/jasmine-jquery-bootstrap.js"></script> 
     
    1314    <script type="text/javascript" src="../../admin/js/_users_actions.js"></script> 
    1415    <script type="text/javascript" src="../../admin/js/common.js"></script> 
     16 
    1517    <script type="text/javascript" src="js/fix_include.js"></script> 
    1618 
    17     <script type="text/javascript" src="spec/users_actions.js"></script> 
     19    <!-- jsUpload --> 
     20    <script type="text/javascript" src="../../admin/js/jsUpload/vendor/jquery.ui.widget.js"></script> 
     21    <script type="text/javascript" src="../../admin/js/jsUpload/tmpl.js"></script> 
     22    <script type="text/javascript" src="../../admin/js/jsUpload/template-upload.js"></script> 
     23    <script type="text/javascript" src="../../admin/js/jsUpload/template-download.js"></script> 
     24    <script type="text/javascript" src="../../admin/js/jsUpload/load-image.js"></script> 
     25    <script type="text/javascript" src="../../admin/js/jsUpload/jquery.iframe-transport.js"></script> 
     26    <script type="text/javascript" src="../../admin/js/jsUpload/jquery.fileupload.js"></script> 
     27    <script type="text/javascript" src="../../admin/js/jsUpload/jquery.fileupload-process.js"></script> 
     28    <script type="text/javascript" src="../../admin/js/jsUpload/jquery.fileupload-resize.js"></script>  
     29    <script type="text/javascript" src="../../admin/js/jsUpload/jquery.fileupload-ui.js"></script> 
     30    <script type="text/javascript" src="../../admin/js/_media.js"></script>     
     31 
     32    <!-- <script type="text/javascript" src="spec/users_actions.js"></script> --> 
    1833    <script type="text/javascript" src="spec/toggle_with_legend.js"></script> 
    19  
    2034    <script type="text/javascript" src="spec/common.js"></script> 
     35    <script type="text/javascript" src="spec/media_manager.js"></script> 
    2136  </head> 
    2237  <body> 
  • tests/functional/js/fix_include.js

    r1703 r1724  
    1010dotclear.msg.confirm_delete_posts = 'confirm %s delete'; 
    1111dotclear.msg.confirm_delete_comments = 'confirm %s delete'; 
     12 
     13dotclear.jsUpload = {msg:{}}; 
     14dotclear.jsUpload.msg.cancel = 'cancel'; 
     15dotclear.jsUpload.msg.send = 'send'; 
     16dotclear.jsUpload.msg.error = 'error'; 
     17dotclear.jsUpload.msg.file_successfully_uploaded = 'file succesfully uploaded'; 
     18 
     19dotclear.msg.enhanced_uploader_activate = 'Temporarily activate enhanced uploader'; 
     20dotclear.msg.enhanced_uploader_disable = 'Temporarily disable enhanced uploader'; 
     21 
  • tests/functional/lib/jasmine-jquery-bootstrap.js

    r1602 r1724  
    11(function() { 
    2     jasmine.getFixtures().fixturesPath = 'fixtures'; 
     2     jasmine.getFixtures().fixturesPath = 'fixtures'; 
     3     jasmine.getStyleFixtures().fixturesPath = '../../admin/style'; 
    34 
    4     var jasmineEnv = jasmine.getEnv(); 
    5     jasmineEnv.updateInterval = 1000; 
     5     var jasmineEnv = jasmine.getEnv(); 
     6     jasmineEnv.updateInterval = 1000; 
    67 
    7     var htmlReporter = new jasmine.HtmlReporter(); 
     8     var htmlReporter = new jasmine.HtmlReporter(); 
    89 
    9     jasmineEnv.addReporter(htmlReporter); 
     10     jasmineEnv.addReporter(htmlReporter); 
    1011 
    11     jasmineEnv.specFilter = function(spec) { 
    12      return htmlReporter.specFilter(spec); 
    13     }; 
     12     jasmineEnv.specFilter = function(spec) { 
     13          return htmlReporter.specFilter(spec); 
     14     }; 
    1415 
    15     var currentWindowOnload = window.onload; 
     16     var currentWindowOnload = window.onload; 
    1617 
    17     window.onload = function() { 
    18      if (currentWindowOnload) { 
    19          currentWindowOnload(); 
     18     window.onload = function() { 
     19          if (currentWindowOnload) { 
     20               currentWindowOnload(); 
     21          } 
     22          execJasmine(); 
     23     }; 
     24 
     25     function execJasmine() { 
     26          jasmineEnv.execute(); 
    2027     } 
    21      execJasmine(); 
    22     }; 
    23  
    24     function execJasmine() { 
    25      jasmineEnv.execute(); 
    26     } 
    2728 
    2829})(); 
  • tests/functional/spec/common.js

    r1703 r1724  
    11describe("Others common methods (admin/js/common.js)", function() { 
    2     describe("postsActionsHelper", function() { 
    3      it("A confirm popup must appear if action is \"delete\" and at least on checkbox is checked", function() { 
    4          loadFixtures('posts_list.html'); 
    5          dotclear.postsActionsHelper(); 
    6           
    7          spyOn(window, 'confirm').andReturn(false); 
    8          var submitCallback = jasmine.createSpy().andReturn(false); 
    9          $('#form-entries').submit(submitCallback); 
     2     describe("postsActionsHelper", function() { 
     3          it("A confirm popup must appear if action is \"delete\" and at least on checkbox is checked", function() { 
     4               loadFixtures('posts_list.html'); 
     5               dotclear.postsActionsHelper(); 
     6                
     7               spyOn(window, 'confirm').andReturn(false); 
     8               var submitCallback = jasmine.createSpy().andReturn(false); 
     9               $('#form-entries').submit(submitCallback); 
    1010 
    11          $('select[name="action"] option[value="delete"]').attr('selected', 'selected'); 
    12          $('input[type="checkbox"][name="entries[]"][value="2"]').attr('checked', 'checked'); 
     11               $('select[name="action"] option[value="delete"]').attr('selected', 'selected'); 
     12               $('input[type="checkbox"][name="entries[]"][value="2"]').attr('checked', 'checked'); 
    1313 
    14          $('#form-entries').trigger('submit'); 
    15          expect(window.confirm).toHaveBeenCalled(); 
     14               $('#form-entries').trigger('submit'); 
     15               expect(window.confirm).toHaveBeenCalled(); 
     16          }); 
     17          it("Confirm popup doesn't appear if action is \"delete\" but no checkbox is checked", function() { 
     18               loadFixtures('posts_list.html'); 
     19               dotclear.postsActionsHelper(); 
     20                
     21               spyOn(window, 'confirm').andReturn(false); 
     22               var submitCallback = jasmine.createSpy().andReturn(false); 
     23               $('#form-entries').submit(submitCallback); 
     24 
     25               $('select[name="action"] option[value="delete"]').attr('selected', 'selected'); 
     26               $('#form-entries').trigger('submit'); 
     27               expect(window.confirm).not.toHaveBeenCalled(); 
     28          }); 
     29          it("Others actions don't show confirm popup", function() { 
     30               loadFixtures('posts_list.html'); 
     31               dotclear.postsActionsHelper(); 
     32                
     33               spyOn(window, 'confirm').andReturn(false); 
     34               var submitCallback = jasmine.createSpy().andReturn(false); 
     35               $('#form-entries').submit(submitCallback); 
     36 
     37               $('select[name="action"] option[value="publish"]').attr('selected', 'selected'); 
     38               $('#form-entries').trigger('submit'); 
     39               expect(window.confirm).not.toHaveBeenCalled(); 
     40          }); 
    1641     }); 
    17      it("Confirm popup doesn't appear if action is \"delete\" but no checkbox is checked", function() { 
    18          loadFixtures('posts_list.html'); 
    19          dotclear.postsActionsHelper(); 
    20           
    21          spyOn(window, 'confirm').andReturn(false); 
    22          var submitCallback = jasmine.createSpy().andReturn(false); 
    23          $('#form-entries').submit(submitCallback); 
    2442 
    25          $('select[name="action"] option[value="delete"]').attr('selected', 'selected'); 
    26          $('#form-entries').trigger('submit'); 
    27          expect(window.confirm).not.toHaveBeenCalled(); 
     43     describe("commentsActionsHelper", function() { 
     44          it("A confirm popup must appear if action is \"delete\" and at least on checkbox is checked", function() { 
     45               loadFixtures('comments_list.html'); 
     46               dotclear.commentsActionsHelper(); 
     47                
     48               spyOn(window, 'confirm').andReturn(false); 
     49               var submitCallback = jasmine.createSpy().andReturn(false); 
     50               $('#form-comments').submit(submitCallback); 
     51 
     52               $('select[name="action"] option[value="delete"]').attr('selected', 'selected'); 
     53               $('input[type="checkbox"][name="comments[]"][value="2"]').attr('checked', 'checked'); 
     54 
     55               $('#form-comments').trigger('submit'); 
     56               expect(window.confirm).toHaveBeenCalled(); 
     57          }); 
     58          it("Confirm popup doesn't appear if action is \"delete\" but no checkbox is checked", function() { 
     59               loadFixtures('comments_list.html'); 
     60               dotclear.commentsActionsHelper(); 
     61                
     62               spyOn(window, 'confirm').andReturn(false); 
     63               var submitCallback = jasmine.createSpy().andReturn(false); 
     64               $('#form-comments').submit(submitCallback); 
     65 
     66               $('select[name="action"] option[value="delete"]').attr('selected', 'selected'); 
     67               $('#form-comments').trigger('submit'); 
     68               expect(window.confirm).not.toHaveBeenCalled(); 
     69          }); 
     70          it("Others actions don't show confirm popup", function() { 
     71               loadFixtures('comments_list.html'); 
     72               dotclear.commentsActionsHelper(); 
     73                
     74               spyOn(window, 'confirm').andReturn(false); 
     75               var submitCallback = jasmine.createSpy().andReturn(false); 
     76               $('#form-comments').submit(submitCallback); 
     77 
     78               $('select[name="action"] option[value="publish"]').attr('selected', 'selected'); 
     79               $('#form-comments').trigger('submit'); 
     80               expect(window.confirm).not.toHaveBeenCalled(); 
     81          }); 
    2882     }); 
    29      it("Others actions don't show confirm popup", function() { 
    30          loadFixtures('posts_list.html'); 
    31          dotclear.postsActionsHelper(); 
    32           
    33          spyOn(window, 'confirm').andReturn(false); 
    34          var submitCallback = jasmine.createSpy().andReturn(false); 
    35          $('#form-entries').submit(submitCallback); 
    36  
    37          $('select[name="action"] option[value="publish"]').attr('selected', 'selected'); 
    38          $('#form-entries').trigger('submit'); 
    39          expect(window.confirm).not.toHaveBeenCalled(); 
    40      }); 
    41     }); 
    42  
    43     describe("commentsActionsHelper", function() { 
    44      it("A confirm popup must appear if action is \"delete\" and at least on checkbox is checked", function() { 
    45          loadFixtures('comments_list.html'); 
    46          dotclear.commentsActionsHelper(); 
    47           
    48          spyOn(window, 'confirm').andReturn(false); 
    49          var submitCallback = jasmine.createSpy().andReturn(false); 
    50          $('#form-comments').submit(submitCallback); 
    51  
    52          $('select[name="action"] option[value="delete"]').attr('selected', 'selected'); 
    53          $('input[type="checkbox"][name="comments[]"][value="2"]').attr('checked', 'checked'); 
    54  
    55          $('#form-comments').trigger('submit'); 
    56          expect(window.confirm).toHaveBeenCalled(); 
    57      }); 
    58      it("Confirm popup doesn't appear if action is \"delete\" but no checkbox is checked", function() { 
    59          loadFixtures('comments_list.html'); 
    60          dotclear.commentsActionsHelper(); 
    61           
    62          spyOn(window, 'confirm').andReturn(false); 
    63          var submitCallback = jasmine.createSpy().andReturn(false); 
    64          $('#form-comments').submit(submitCallback); 
    65  
    66          $('select[name="action"] option[value="delete"]').attr('selected', 'selected'); 
    67          $('#form-comments').trigger('submit'); 
    68          expect(window.confirm).not.toHaveBeenCalled(); 
    69      }); 
    70      it("Others actions don't show confirm popup", function() { 
    71          loadFixtures('comments_list.html'); 
    72          dotclear.commentsActionsHelper(); 
    73           
    74          spyOn(window, 'confirm').andReturn(false); 
    75          var submitCallback = jasmine.createSpy().andReturn(false); 
    76          $('#form-comments').submit(submitCallback); 
    77  
    78          $('select[name="action"] option[value="publish"]').attr('selected', 'selected'); 
    79          $('#form-comments').trigger('submit'); 
    80          expect(window.confirm).not.toHaveBeenCalled(); 
    81      }); 
    82     }); 
    8383}); 
  • tests/functional/spec/toggle_with_legend.js

    r1703 r1724  
    11describe("toggleWithLegend method (admin/js/common.js)", function() { 
    2     it("Click arrow must make target visible", function() { 
    3      loadFixtures('menu.html'); 
    4      $('#post_status').parent().toggleWithLegend($('#post_status'),{  }); 
     2     it("Click arrow must make target visible", function() { 
     3          loadFixtures('menu.html'); 
     4          $('#post_status').parent().toggleWithLegend($('#post_status'),{  }); 
    55 
    6      var $arrow = $('#post_status').parent().find('img'); 
    7      $arrow.click(); 
    8      expect($('#post_status')).toBeVisible(); 
    9     }); 
    10     it("Click arrow twice,must make target visible and after second click hidden", function() { 
    11      loadFixtures('menu.html'); 
    12      $('#post_status').parent().toggleWithLegend($('#post_status'),{  }); 
     6          var $arrow = $('#post_status').parent().find('img'); 
     7          $arrow.click(); 
     8          expect($('#post_status')).toBeVisible(); 
     9     }); 
     10     it("Click arrow twice,must make target visible and after second click hidden", function() { 
     11          loadFixtures('menu.html'); 
     12          $('#post_status').parent().toggleWithLegend($('#post_status'),{  }); 
    1313 
    14      var $arrow = $('#post_status').parent().find('img'); 
    15      $arrow.click(); 
    16      expect($('#post_status')).toBeVisible(); 
     14          var $arrow = $('#post_status').parent().find('img'); 
     15          $arrow.click(); 
     16          expect($('#post_status')).toBeVisible(); 
    1717 
    18      $arrow.click(); 
    19      expect($('#post_status')).toBeHidden(); 
    20     }); 
    21     it("Chick target must not hide target", function() { 
    22      loadFixtures('menu.html'); 
    23      $('#post_status').parent().toggleWithLegend($('#post_status'),{  }); 
     18          $arrow.click(); 
     19          expect($('#post_status')).toBeHidden(); 
     20     }); 
     21     it("Chick target must not hide target", function() { 
     22          loadFixtures('menu.html'); 
     23          $('#post_status').parent().toggleWithLegend($('#post_status'),{  }); 
    2424 
    25      var $arrow = $('#post_status').parent().find('img'); 
    26      $arrow.click(); 
    27      expect($('#post_status')).toBeVisible(); 
     25          var $arrow = $('#post_status').parent().find('img'); 
     26          $arrow.click(); 
     27          expect($('#post_status')).toBeVisible(); 
    2828 
    29      $('#post_status option[value="-2"]').attr('selected', 'selected'); 
    30      expect($('#post_status')).toBeVisible(); 
    31     }); 
    32     it("Chick target must not hide target, when legend_click is true", function() { 
    33      loadFixtures('menu.html'); 
    34      var $label = $('#post_status').parent().children('label'); 
    35      $label.toggleWithLegend($('#post_status'),{'legend_click':true, a_container:false}); 
     29          $('#post_status option[value="-2"]').attr('selected', 'selected'); 
     30          expect($('#post_status')).toBeVisible(); 
     31     }); 
     32     it("Chick target must not hide target, when legend_click is true", function() { 
     33          loadFixtures('menu.html'); 
     34          var $label = $('#post_status').parent().children('label'); 
     35          $label.toggleWithLegend($('#post_status'),{'legend_click':true, a_container:false}); 
    3636 
    37      $label.click(); 
    38      expect($('#post_status')).toBeVisible(); 
     37          $label.click(); 
     38          expect($('#post_status')).toBeVisible(); 
    3939 
    40      var $arrow = $('#post_status').parent().find('img'); 
    41      $arrow.click(); 
    42      expect($('#post_status')).toBeVisible(); 
     40          var $arrow = $('#post_status').parent().find('img'); 
     41          $arrow.click(); 
     42          expect($('#post_status')).toBeVisible(); 
    4343 
    44      $('#post_status').val(-2).trigger('change'); 
    45      expect($('#post_status')).toBeVisible(); 
    46     }); 
     44          $('#post_status').val(-2).trigger('change'); 
     45          expect($('#post_status')).toBeVisible(); 
     46     }); 
    4747}); 
  • tests/functional/spec/users_actions.js

    r1703 r1724  
    11describe("updatePermissionsForm method (admin/js/_users_actions.js)", function() { 
    2     it("Click admin persmission must checked all associated permissions", function() { 
    3      loadFixtures('normal.html'); 
    4      $('#permissions-form').updatePermissionsForm(); 
    5      var permissions = ['usage','publish','delete','contentadmin','categories']; 
     2     it("Click admin persmission must checked all associated permissions", function() { 
     3          loadFixtures('normal.html'); 
     4          $('#permissions-form').updatePermissionsForm(); 
     5          var permissions = ['usage','publish','delete','contentadmin','categories']; 
    66 
    7      $('input[name="perm[default][admin]"]').click(); 
    8      for (var _i=0,_len=permissions.length;_i<_len;_i++) { 
    9          expect($('input[name="perm[default]['+permissions[_i]+']"]')).toBeChecked(); 
    10          expect($('input[name="perm[default]['+permissions[_i]+']"]')).toBeDisabled(); 
    11      } 
    12     }); 
     7          $('input[name="perm[default][admin]"]').click(); 
     8          for (var _i=0,_len=permissions.length;_i<_len;_i++) { 
     9               expect($('input[name="perm\\[default\\]\\['+permissions[_i]+'\\]"]')).toBeChecked(); 
     10               expect($('input[name="perm\\[default\\]\\['+permissions[_i]+'\\]"]')).toBeDisabled(); 
     11          } 
     12     }); 
    1313 
    14     it("Click contentadmin persmission must checked all associated permissions", function() { 
    15      loadFixtures('normal.html'); 
    16      $('#permissions-form').updatePermissionsForm(); 
    17      var permissions = ['usage','publish','delete']; 
     14     it("Click contentadmin persmission must checked all associated permissions", function() { 
     15          loadFixtures('normal.html'); 
     16          $('#permissions-form').updatePermissionsForm(); 
     17          var permissions = ['usage','publish','delete']; 
    1818 
    19      $('input[name="perm[default][contentadmin]"]').click(); 
    20      for (var _i=0,_len=permissions.length;_i<_len;_i++) { 
    21          expect($('input[name="perm[default]['+permissions[_i]+']"]')).toBeChecked(); 
    22          expect($('input[name="perm[default]['+permissions[_i]+']"]')).toBeDisabled(); 
    23      } 
    24     }); 
     19          $('input[name="perm[default][contentadmin]"]').click(); 
     20          for (var _i=0,_len=permissions.length;_i<_len;_i++) { 
     21               expect($('input[name="perm[default]['+permissions[_i]+']"]')).toBeChecked(); 
     22               expect($('input[name="perm[default]['+permissions[_i]+']"]')).toBeDisabled(); 
     23          } 
     24     }); 
    2525}); 
Note: See TracChangeset for help on using the changeset viewer.

Sites map