Browse Source

ZF-9136 Fixed (read: improved) some loading of custom mail transports

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@21015 44c647ce-9c0f-0410-b52a-842ac1e357ba
freak 16 years ago
parent
commit
14623e100a

+ 16 - 11
library/Zend/Application/Resource/Mail.php

@@ -99,27 +99,32 @@ class Zend_Application_Resource_Mail extends Zend_Application_Resource_ResourceA
             }
         }
     }
-
+    
     protected function _setupTransport($options)
     {
     	if(!isset($options['type'])) {
     		$options['type'] = 'sendmail';
     	}
     	
-        $transportName = ucfirst(strtolower($options['type']));
-        unset($options['type']);
-
-        if(!Zend_Loader_Autoloader::autoload($transportName)) {
-            $transportName = 'Zend_Mail_Transport_' . $transportName;
+        $transportName = $options['type'];
+        if(!Zend_Loader_Autoloader::autoload($transportName))
+        {
+            $transportName = ucfirst(strtolower($transportName));
 
-            if(!Zend_Loader_Autoloader::autoload($transportName)) {
-                throw new Zend_Application_Resource_Exception(
-                    "Specified Mail Transport '{$transportName}'"
-                    . 'could not be found'
-                );
+            if(!Zend_Loader_Autoloader::autoload($transportName))
+            {
+                $transportName = 'Zend_Mail_Transport_' . $transportName;
+                if(!Zend_Loader_Autoloader::autoload($transportName)) {
+                    throw new Zend_Application_Resource_Exception(
+                        "Specified Mail Transport '{$transportName}'"
+                        . 'could not be found'
+                    );
+                }
             }
         }
         
+        unset($options['type']);
+        
         switch($transportName) {
             case 'Zend_Mail_Transport_Smtp':
                 if(!isset($options['host'])) {

+ 4 - 9
tests/Zend/Application/Resource/MailTest.php

@@ -35,12 +35,6 @@ require_once dirname(__FILE__) . '/../../../TestHelper.php';
 require_once 'Zend/Loader/Autoloader.php';
 
 /**
- * @see Zend_Application_Resource_Mail
- */
-require_once 'Zend/Application/Resource/Mail.php';
-
-
-/**
  * @category   Zend
  * @package    Zend_Application
  * @subpackage UnitTests
@@ -196,10 +190,11 @@ class Zend_Application_Resource_MailTest extends PHPUnit_Framework_TestCase
         $resource->setOptions($options);
 
         $resource->init();
-        $this->assertTrue(Zend_Mail::getDefaultTransport() instanceof Zend_Mail_Transport_Sendmail);    	
+        $this->assertTrue(Zend_Mail::getDefaultTransport() instanceof Zend_Mail_Transport_Sendmail);        
     }
+    
 }
 
-if (PHPUnit_MAIN_METHOD == 'Zend_Application_Resource_LogTest::main') {
-    Zend_Application_Resource_LogTest::main();
+if (PHPUnit_MAIN_METHOD == 'Zend_Application_Resource_MainTest::main') {
+    Zend_Application_Resource_MainTest::main();
 }