Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 7073

Show
Ignore:
Timestamp:
06/20/07 21:20:04 (1 year ago)
Author:
mislav
Message:

Prototype: finish form tests cleanup

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • spinoffs/prototype/branches/form/test/unit/form.html

    r7072 r7073  
    103103</form> 
    104104 
    105 <form id="form_ffe"> 
    106   <p><input type="text" disabled="disabled" id="ffe_disabled" /></p> 
    107   <input type="hidden" id="ffe_hidden" /> 
    108   <input type="checkbox" id="ffe_checkbox" /> 
    109 </form> 
    110  
    111 <form id="form_ffe_ti"> 
    112   <p><input type="text" disabled="disabled" id="ffe_ti_disabled" /></p> 
    113   <input type="hidden" id="ffe_ti_hidden" /> 
    114   <input type="checkbox" id="ffe_ti_checkbox" /> 
    115   <input type="submit" id="ffe_ti_submit" tabindex="1" /> 
    116 </form> 
    117  
    118 <form id="form_ffe_ti2"> 
    119   <p><input type="text" disabled="disabled" id="ffe_ti2_disabled" /></p> 
    120   <input type="hidden" id="ffe_ti2_hidden" /> 
    121   <input type="checkbox" id="ffe_ti2_checkbox" tabindex="0" /> 
    122   <input type="submit" id="ffe_ti2_submit" tabindex="1" /> 
    123 </form> 
     105<!-- tabindexed forms --> 
     106<div id="tabindex"> 
     107  <form id="ffe"> 
     108    <p><input type="text" disabled="disabled" id="ffe_disabled" /></p> 
     109    <input type="hidden" id="ffe_hidden" /> 
     110    <input type="checkbox" id="ffe_checkbox" /> 
     111  </form> 
     112 
     113  <form id="ffe_ti"> 
     114    <p><input type="text" disabled="disabled" id="ffe_ti_disabled" /></p> 
     115    <input type="hidden" id="ffe_ti_hidden" /> 
     116    <input type="checkbox" id="ffe_ti_checkbox" /> 
     117    <input type="submit" id="ffe_ti_submit" tabindex="1" /> 
     118  </form> 
     119 
     120  <form id="ffe_ti2"> 
     121    <p><input type="text" disabled="disabled" id="ffe_ti2_disabled" /></p> 
     122    <input type="hidden" id="ffe_ti2_hidden" /> 
     123    <input type="checkbox" id="ffe_ti2_checkbox" tabindex="0" /> 
     124    <input type="submit" id="ffe_ti2_submit" tabindex="1" /> 
     125  </form> 
     126</div> 
    124127 
    125128<!-- Tests follow --> 
    126 <script type="text/javascript" language="javascript" charset="utf-8"> 
     129<script type="text/javascript" charset="utf-8"> 
    127130// <![CDATA[ 
    128131  var callbackCounter = 0; 
    129132  var timedCounter = 0; 
    130133 
     134  // sweet sweet additional assertions 
    131135  Object.extend(Test.Unit.Testcase.prototype, { 
    132     assertEnabled: function(element) { 
    133       this.assert(!$(element).disabled, Test.Unit.inspect(element) + ' was disabled'); 
     136    assertEnabled: function() { 
     137      for (var i = 0, element; element = arguments[i]; i++) { 
     138        this.assert(!$(element).disabled, Test.Unit.inspect(element) + ' was disabled'); 
     139      } 
    134140    }, 
    135     assertDisabled: function(element) { 
    136       this.assert($(element).disabled, Test.Unit.inspect(element) + ' was enabled'); 
     141    assertDisabled: function() { 
     142      for (var i = 0, element; element = arguments[i]; i++) { 
     143        this.assert($(element).disabled, Test.Unit.inspect(element) + ' was enabled'); 
     144      } 
    137145    } 
    138146  }); 
     
    217225    testFormEnabling: function(){ with(this) { 
    218226      var form = $('bigform') 
    219       var input1 = $('dummy_disabled') 
    220       var input2 = $('focus_text') 
    221        
    222       assert(input1.disabled) 
    223       assert(!input2.disabled) 
    224        
    225       form.disable() 
    226       assert(input1.disabled) 
    227       assert(input2.disabled) 
    228        
    229       form.enable() 
    230       assert(!input1.disabled) 
    231       assert(!input2.disabled) 
    232        
    233       input1.disable() 
    234       assert(input1.disabled) 
     227      var input1 = $('dummy_disabled'); 
     228      var input2 = $('focus_text'); 
     229       
     230      assertDisabled(input1); 
     231      assertEnabled(input2); 
     232       
     233      form.disable(); 
     234      assertDisabled(input1, input2); 
     235      form.enable(); 
     236      assertEnabled(input1, input2); 
     237      input1.disable(); 
     238      assertDisabled(input1); 
    235239       
    236240      // non-form elements: 
    237       var fieldset = $('selects_fieldset') 
    238       var fields = fieldset.immediateDescendants() 
    239       assert(fields.all(function(select){ return !select.disabled })) 
     241      var fieldset = $('selects_fieldset'); 
     242      var fields = fieldset.immediateDescendants(); 
     243      fields.each(function(select) { assertEnabled(select) }); 
    240244       
    241245      Form.disable(fieldset) 
    242       assert(fields.all(function(select){ return select.disabled })) 
     246      fields.each(function(select) { assertDisabled(select) }); 
    243247       
    244248      Form.enable(fieldset) 
    245       assert(fields.all(function(select){ return !select.disabled })) 
     249      fields.each(function(select) { assertEnabled(select) }); 
    246250    }}, 
    247251     
     
    314318 
    315319    testFormFindFirstElement: function() {with(this) { 
    316       assertEqual($('ffe_checkbox'), $('form_ffe').findFirstElement()); 
    317       assertEqual($('ffe_ti_submit'), $('form_ffe_ti').findFirstElement()); 
    318       assertEqual($('ffe_ti2_checkbox'), $('form_ffe_ti2').findFirstElement()); 
     320      assertEqual($('ffe_checkbox'), $('ffe').findFirstElement()); 
     321      assertEqual($('ffe_ti_submit'), $('ffe_ti').findFirstElement()); 
     322      assertEqual($('ffe_ti2_checkbox'), $('ffe_ti2').findFirstElement()); 
    319323    }}, 
    320324     
     
    386390     
    387391    testFormRequest: function() {with(this) { 
    388      // var request = $("form_selects").request(); 
    389      // assert(!$("form_selects").hasAttribute("method")); 
    390      // assert(request.url.endsWith("fixtures/empty.js")); 
    391      // assertEqual("post", request.method); 
    392      // assertHashEqual({ vu:1, 'vm[]':[2], nvu:'One', 'nvm[]':[2], 'evm[]':'Three' }, request.options.parameters); 
    393  
    394      // request = $("form_selects").request({method: "put", parameters: {val2: "hello", val3: "world"}}); 
    395      // assertEqual("post", request.method); 
    396      // assertEqual("vu=1&vm%5B%5D=1&vm%5B%5D=3&nvu=One&nvm%5B%5D=One&nvm%5B%5D=Three&evu=&evm%5B%5D=&evm%5B%5D=Three&val2=hello&val3=world", Hash.toQueryString(request.options.parameters)); 
    397        
    398392      request = $("form").request(); 
    399393      assert($("form").hasAttribute("method"));