Ejegg has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/162776

Change subject: Fix form HTML generation test
......................................................................

Fix form HTML generation test

Test basics of nodes and values rather than strict string compare.

Change-Id: I90021ad357b979566417eee50431c02ee893027c
---
M tests/Gateway_FormTestCase.php
1 file changed, 18 insertions(+), 23 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/DonationInterface 
refs/changes/76/162776/1

diff --git a/tests/Gateway_FormTestCase.php b/tests/Gateway_FormTestCase.php
index ac360b7..1201355 100644
--- a/tests/Gateway_FormTestCase.php
+++ b/tests/Gateway_FormTestCase.php
@@ -228,33 +228,28 @@
         * @covers Gateway_Form::generateCurrencyDropdown
         */
        public function testGenerateCurrencyDropdown(){
-               $expected = '<select name="currency_code" 
id="input_currency_code" onchange="">';
-               $currencies = $this->form->gateway->getCurrencies();
+               $currencies = array_flip( $this->form->gateway->getCurrencies() 
);
 
-               foreach ( $currencies as $curr ) {
-                       $expected .= '<option value="' . $curr;
+               $dom_thingy = new DOMDocument();
 
-                       if ( $curr === 'USD' ) {
-                               $expected .= '" selected="';
+               $dom_thingy->encoding = 'UTF-8';
+               $dom_thingy->loadHTML( '<?xml encoding="UTF-8">' . 
$this->form->generateCurrencyDropdown() );
+
+               $select_node = $dom_thingy->getElementById( 
'input_currency_code' );
+               $this->assertEquals( 'currency_code', 
$select_node->getAttribute( 'name' ) );
+               
+               foreach ( $select_node->childNodes as $option ) {
+                       $currency = $option->getAttribute( 'value' );
+                       $this->assertNotNull( $currencies[$currency], 'Currency 
node generated for non-existent ' . $currency );
+                       $msg = wfMessage( 'donate_interface-' . $currency );
+                       if ( ! $msg->inContentLanguage()->isBlank() ) {
+                               $this->assertEquals( $msg, $option->nodeValue, 
'Option text wrong for currency ' . $currency );
                        }
-
-                       $expected .= '">';
-
-                       $msg = wfMessage( 'donate_interface-' . $curr );
-                       if ( $msg->inContentLanguage()->isBlank() ) {
-                               $expected .= htmlentities( $msg->text() );
-                       } else {
-                               $expected .= $msg->text();
+                       if ( $currency === 'USD' ) {
+                               $this->assertNotNull( $option->getAttribute( 
'selected' ) );
                        }
-
-                       $expected .= '</option>';
+                       unset( $currencies[$currency] );
                }
-
-               $expected .= '</select>';
-
-               $this->assertEquals(
-                       $expected,
-                       $this->form->generateCurrencyDropdown()
-               );
+               $this->assertEmpty( $currencies, 'Did not generate options for 
all currencies!' );
        }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/162776
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I90021ad357b979566417eee50431c02ee893027c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/DonationInterface
Gerrit-Branch: master
Gerrit-Owner: Ejegg <eeggles...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to