2
0
Переглянути джерело

[ZF-12012] Added filename to exception thrown from XML-alike translation adapters

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@24649 44c647ce-9c0f-0410-b52a-842ac1e357ba
adamlundrigan 14 роки тому
батько
коміт
e94b956a53

+ 3 - 2
library/Zend/Translate/Adapter/Qt.php

@@ -74,9 +74,10 @@ class Zend_Translate_Adapter_Qt extends Zend_Translate_Adapter {
         xml_set_character_data_handler($this->_file, "_contentElement");
 
         if (!xml_parse($this->_file, file_get_contents($filename))) {
-            $ex = sprintf('XML error: %s at line %d',
+            $ex = sprintf('XML error: %s at line %d of file %s',
                           xml_error_string(xml_get_error_code($this->_file)),
-                          xml_get_current_line_number($this->_file));
+                          xml_get_current_line_number($this->_file),
+                          $filename);
             xml_parser_free($this->_file);
             require_once 'Zend/Translate/Exception.php';
             throw new Zend_Translate_Exception($ex);

+ 3 - 2
library/Zend/Translate/Adapter/Tbx.php

@@ -69,9 +69,10 @@ class Zend_Translate_Adapter_Tbx extends Zend_Translate_Adapter {
         xml_set_character_data_handler($this->_file, "_contentElement");
 
         if (!xml_parse($this->_file, file_get_contents($filename))) {
-            $ex = sprintf('XML error: %s at line %d',
+            $ex = sprintf('XML error: %s at line %d of file %s',
                           xml_error_string(xml_get_error_code($this->_file)),
-                          xml_get_current_line_number($this->_file));
+                          xml_get_current_line_number($this->_file),
+                          $filename);
             xml_parser_free($this->_file);
             require_once 'Zend/Translate/Exception.php';
             throw new Zend_Translate_Exception($ex);

+ 3 - 2
library/Zend/Translate/Adapter/Tmx.php

@@ -74,9 +74,10 @@ class Zend_Translate_Adapter_Tmx extends Zend_Translate_Adapter {
         xml_set_character_data_handler($this->_file, "_contentElement");
 
         if (!xml_parse($this->_file, file_get_contents($filename))) {
-            $ex = sprintf('XML error: %s at line %d',
+            $ex = sprintf('XML error: %s at line %d of file %s',
                           xml_error_string(xml_get_error_code($this->_file)),
-                          xml_get_current_line_number($this->_file));
+                          xml_get_current_line_number($this->_file),
+                          $filename);
             xml_parser_free($this->_file);
             require_once 'Zend/Translate/Exception.php';
             throw new Zend_Translate_Exception($ex);

+ 3 - 2
library/Zend/Translate/Adapter/Xliff.php

@@ -81,9 +81,10 @@ class Zend_Translate_Adapter_Xliff extends Zend_Translate_Adapter {
         xml_set_character_data_handler($this->_file, "_contentElement");
 
         if (!xml_parse($this->_file, file_get_contents($filename))) {
-            $ex = sprintf('XML error: %s at line %d',
+            $ex = sprintf('XML error: %s at line %d of file %s',
                           xml_error_string(xml_get_error_code($this->_file)),
-                          xml_get_current_line_number($this->_file));
+                          xml_get_current_line_number($this->_file),
+                          $filename);
             xml_parser_free($this->_file);
             require_once 'Zend/Translate/Exception.php';
             throw new Zend_Translate_Exception($ex);

+ 3 - 2
library/Zend/Translate/Adapter/XmlTm.php

@@ -69,9 +69,10 @@ class Zend_Translate_Adapter_XmlTm extends Zend_Translate_Adapter {
         xml_set_character_data_handler($this->_file, "_contentElement");
 
         if (!xml_parse($this->_file, file_get_contents($filename))) {
-            $ex = sprintf('XML error: %s at line %d',
+            $ex = sprintf('XML error: %s at line %d of file %s',
                           xml_error_string(xml_get_error_code($this->_file)),
-                          xml_get_current_line_number($this->_file));
+                          xml_get_current_line_number($this->_file),
+                          $filename);
             xml_parser_free($this->_file);
             require_once 'Zend/Translate/Exception.php';
             throw new Zend_Translate_Exception($ex);

+ 13 - 0
tests/Zend/Translate/Adapter/QtTest.php

@@ -66,6 +66,19 @@ class Zend_Translate_Adapter_QtTest extends PHPUnit_Framework_TestCase
         }
     }
 
+    /**
+     * @group ZF-12012
+     */
+    public function testErrorOnCreateIncludesFilename()
+    {
+        try {
+            $adapter = new Zend_Translate_Adapter_Qt(dirname(__FILE__) . '/_files/nofile.ts', 'en');
+            $this->fail("exception expected");
+        } catch (Zend_Translate_Exception $e) {
+            $this->assertContains('nofile.ts', $e->getMessage());
+        }
+    }
+    
     public function testToString()
     {
         $adapter = new Zend_Translate_Adapter_Qt(dirname(__FILE__) . '/_files/translation_en.ts');

+ 13 - 0
tests/Zend/Translate/Adapter/TbxTest.php

@@ -66,6 +66,19 @@ class Zend_Translate_Adapter_TbxTest extends PHPUnit_Framework_TestCase
         }
     }
 
+    /**
+     * @group ZF-12012
+     */
+    public function testErrorOnCreateIncludesFilename()
+    {
+        try {
+            $adapter = new Zend_Translate_Adapter_Tbx(dirname(__FILE__) . '/_files/nofile.tbx', 'en');
+            $this->fail("exception expected");
+        } catch (Zend_Translate_Exception $e) {
+            $this->assertContains('nofile.tbx', $e->getMessage());
+        }
+    }
+    
     public function testToString()
     {
         $adapter = new Zend_Translate_Adapter_Tbx(dirname(__FILE__) . '/_files/translation_en.tbx', 'fr');

+ 13 - 0
tests/Zend/Translate/Adapter/TmxTest.php

@@ -65,6 +65,19 @@ class Zend_Translate_Adapter_TmxTest extends PHPUnit_Framework_TestCase
             $this->assertContains('Mismatched tag at line', $e->getMessage());
         }
     }
+    
+    /**
+     * @group ZF-12012
+     */
+    public function testErrorOnCreateIncludesFilename()
+    {
+        try {
+            $adapter = new Zend_Translate_Adapter_Tmx(dirname(__FILE__) . '/_files/nofile.tmx', 'en');
+            $this->fail("exception expected");
+        } catch (Zend_Translate_Exception $e) {
+            $this->assertContains('nofile.tmx', $e->getMessage());
+        }
+    }
 
     public function testToString()
     {

+ 13 - 0
tests/Zend/Translate/Adapter/XliffTest.php

@@ -65,6 +65,19 @@ class Zend_Translate_Adapter_XliffTest extends PHPUnit_Framework_TestCase
             $this->assertContains('Mismatched tag at line', $e->getMessage());
         }
     }
+    
+    /**
+     * @group ZF-12012
+     */
+    public function testErrorOnCreateIncludesFilename()
+    {
+        try {
+            $adapter = new Zend_Translate_Adapter_Xliff(dirname(__FILE__) . '/_files/nofile.xliff', 'en');
+            $this->fail("exception expected");
+        } catch (Zend_Translate_Exception $e) {
+            $this->assertContains('nofile.xliff', $e->getMessage());
+        }
+    }
 
     public function testToString()
     {

+ 13 - 0
tests/Zend/Translate/Adapter/XmlTmTest.php

@@ -65,6 +65,19 @@ class Zend_Translate_Adapter_XmlTmTest extends PHPUnit_Framework_TestCase
             $this->assertContains('Mismatched tag at line', $e->getMessage());
         }
     }
+    
+    /**
+     * @group ZF-12012
+     */
+    public function testErrorOnCreateIncludesFilename()
+    {
+        try {
+            $adapter = new Zend_Translate_Adapter_XmlTm(dirname(__FILE__) . '/_files/nofile.xmltm', 'en');
+            $this->fail("exception expected");
+        } catch (Zend_Translate_Exception $e) {
+            $this->assertContains('nofile.xmltm', $e->getMessage());
+        }
+    }
 
     public function testToString()
     {