Development

Changeset 2575

You must first sign up to be able to contribute.

Changeset 2575

Show
Ignore:
Timestamp:
10/31/06 12:00:59 (2 years ago)
Author:
fabien
Message:

added click on image and image button in sfBrowser

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/util/sfBrowser.class.php

    r2569 r2575  
    241241    $dom   = $this->dom; 
    242242 
    243     // link 
     243    // text link 
    244244    if ($link = $xpath->query(sprintf('//a[.="%s"]', $name))->item(0)) 
    245245    { 
     
    247247    } 
    248248 
     249    // image link 
     250    if ($link = $xpath->query(sprintf('//a/img[@alt="%s"]/ancestor::a', $name))->item(0)) 
     251    { 
     252      return $this->get($link->getAttribute('href')); 
     253    } 
     254 
    249255    // form 
    250     if (!$form = $xpath->query(sprintf('//input[(@type="submit" or @type="button") and @value="%s"]/ancestor::form', $name))->item(0)) 
     256    if (!$form = $xpath->query(sprintf('//input[((@type="submit" or @type="button") and @value="%s") or (@type="image" and @alt="%s")]/ancestor::form', $name, $name))->item(0)) 
    251257    { 
    252258      throw new sfException(sprintf('Cannot find the "%s" link or button.', $name)); 
     
    263269      $elementName = $element->getAttribute('name'); 
    264270      $value = null; 
    265       if ($element->nodeName == 'input' && (($element->getAttribute('type') != 'submit' && $element->getAttribute('type') != 'button') || $element->getAttribute('value') == $name)) 
     271      if ( 
     272        $element->nodeName == 'input' 
     273        && 
     274        (($element->getAttribute('type') != 'submit' && $element->getAttribute('type') != 'button') || $element->getAttribute('value') == $name) 
     275        && 
     276        ($element->getAttribute('type') != 'image' || $element->getAttribute('alt') == $name) 
     277      ) 
    266278      { 
    267279        $value = $element->getAttribute('value'); 
  • trunk/test/unit/util/sfBrowserTest.php

    r2283 r2575  
    1111require_once(dirname(__FILE__).'/../../bootstrap/unit.php'); 
    1212 
    13 $t = new lime_test(36, new lime_output_color()); 
     13$t = new lime_test(38, new lime_output_color()); 
    1414 
    1515// ->click() 
     
    3636  <body> 
    3737    <a href="/mylink">test link</a> 
     38    <a href="/myimagelink"><img src="myimage.gif" alt="image link" /></a> 
    3839    <form action="/myform" method="post"> 
    3940      <input type="text" name="text_default_value" value="default" /> 
     
    7980      <div><span> 
    8081        <input type="submit" name="submit" value="submit4" /> 
     82        <input type="image" src="myimage.png" alt="image submit" name="submit_image" value="image" /> 
    8183      </span></div> 
    8284    </form> 
     
    99101list($method, $uri, $parameters) = $b->click('test link'); 
    100102$t->is($uri, '/mylink', '->click() clicks on links'); 
     103 
     104list($method, $uri, $parameters) = $b->click('image link'); 
     105$t->is($uri, '/myimagelink', '->click() clicks on image links'); 
    101106 
    102107list($method, $uri, $parameters) = $b->click('submit'); 
     
    132137list($method, $uri, $parameters) = $b->click('submit4'); 
    133138$t->is($uri, '/myform4?submit=submit4', '->click() can click on submit button anywhere in a form'); 
     139 
     140list($method, $uri, $parameters) = $b->click('image submit'); 
     141$t->is($uri, '/myform4?submit_image=image', '->click() can click on image button in forms'); 
    134142 
    135143list($method, $uri, $parameters) = $b->click('submit', array(