Kaynağa Gözat

ZF-12186: Zend_Text_MultiByte::strPad() Warning on Input Longer Than Pad Length

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@24762 44c647ce-9c0f-0410-b52a-842ac1e357ba
adamlundrigan 13 yıl önce
ebeveyn
işleme
d70807bdec

+ 1 - 1
library/Zend/Text/MultiByte.php

@@ -107,7 +107,7 @@ class Zend_Text_MultiByte
         $lengthOfPadding = $padLength - iconv_strlen($input, $charset);
         $padStringLength = iconv_strlen($padString, $charset);
 
-        if ($padStringLength === 0 || $lengthOfPadding === 0) {
+        if ($padStringLength === 0 || $lengthOfPadding <= 0) {
             $return = $input;
         } else {
             $repeatCount = floor($lengthOfPadding / $padStringLength);

+ 27 - 0
tests/Zend/Text/MultiByteTest.php

@@ -263,6 +263,33 @@ class Zend_Text_MultiByteTest extends PHPUnit_Framework_TestCase
         $text = Zend_Text_MultiByte::strPad('äääöö', 5, 'ö', STR_PAD_RIGHT);
         $this->assertEquals('äääöö', $text);
     }
+
+    /**
+     * @group ZF-12186
+     */
+    public function testPadInputLongerThanPadLength()
+    {
+        $text = Zend_Text_MultiByte::strPad('äääöö', 2, 'ö');
+        $this->assertEquals('äääöö', $text);
+    }
+
+    /**
+     * @group ZF-12186
+     */
+    public function testPadInputSameAsPadLength()
+    {
+        $text = Zend_Text_MultiByte::strPad('äääöö', 5, 'ö');
+        $this->assertEquals('äääöö', $text);
+    }
+
+    /**
+     * @group ZF-12186
+     */
+    public function testPadNegativePadLength()
+    {
+        $text = Zend_Text_MultiByte::strPad('äääöö', -2, 'ö');
+        $this->assertEquals('äääöö', $text);
+    }
 }
 
 // Call Zend_Text_MultiByteTest::main() if this source file is executed directly.