Changeset 1185 for trunk/test

Show
Ignore:
Timestamp:
10/07/08 11:03:16 (2 months ago)
Author:
arnoschn
Message:

WARNING: IMPORTANT CHANGES AHEAD!

Using this version requires you do manually add/change files/folders to existing applications.

Merging Caching Branch into trunk:

New features:

1. Configuration

1.1. Yaml Configuration (see inline doc at: http://svn.akelos.org/trunk/lib/AkConfig.php)

2. Caching (see inline doc at: http://svn.akelos.org/trunk/lib/AkActionController/AkCacheHandler.php)

2.1 Memcache Cache Handler
2.2 Page Caching
2.3 Action Caching
2.4 Fragment Caching
2.5 Cache Sweepers

3. ActiveRecord?

3.1 toXml (RoR style) (see inline doc at: http://svn.akelos.org/trunk/lib/AkActiveRecord.php)
3.2 fromXml
3.3 toJson (RoR style) (see inline doc at: http://svn.akelos.org/trunk/lib/AkActiveRecord.php)
3.4 fromJson
3.5 AkDbSchemaCache?

4. ActionController?

4.1 respondToFormat (see inline doc at: http://svn.akelos.org/trunk/lib/AkActionController.php)

5. Functional Testing (AkTestApplication?) (see example usage in: http://svn.akelos.org/trunk/test/unit/lib/AkActionController/_page_caching.php)

Refactoring / Improvements:

6. Unit Testing Fixtures

class AkSomeTest? extends AkUnitTest?
{
/**

  • grabs AK_BASE_DIR/test/fixtures/data/posts.yaml and inserts the data in the db
  • example:

  • posts.yaml:
  • entry1:
  • id: 1
  • name: test1
  • entry2:
  • id: 2
  • name: test2

  • model instances are available via $this->posts['entry1] and $this->posts['entry2]
    */
    var $fixtures = 'posts';


...

}

7. AkSession?


Session handling can now be configured via config/sessions.yml.
Besides file storage you can use Memcache or Db Storage for sessions.

8. AkPluginInstaller?

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk

    • Property svn:ignore changed from
      tmp/*
      to
      .project
  • trunk/test

    • Property svn:ignore set to
      report
  • trunk/test/fixtures/app/application_controller.php

    r412 r1185  
    11<?php 
    22 
    3 require_once(AK_LIB_DIR.DS.'AkActionController.php'); 
     3require_once(AK_APP_DIR.DS.'base_action_controller.php'); 
    44 
    5 class ApplicationController extends AkActionController  
     5class ApplicationController extends BaseActionController  
    66{ 
    77    var $layout = false; 
     8 
    89} 
    910 
  • trunk/test/fixtures/app/controllers/page_caching_controller.php

    r1164 r1185  
    44{ 
    55 
    6     var $caches_page = array('index','ok','no_content','found','not_found','simple', 'priority', 
     6    var $caches_page = array('format','index','ok','no_content','found','not_found','simple', 'priority', 
    77                               'skip'); 
    88 
     
    1515         
    1616    } 
     17     
     18    function format() 
     19    { 
     20        if (!$this->respondToFormat()) { 
     21            $this->renderText('<h1>hello business</h1>'); 
     22        } 
     23    } 
     24     
     25    function _handleFormatAsXml() 
     26    { 
     27        $this->renderText('<hello>business</hello>'); 
     28    } 
     29     
     30    function _handleFormatAsCsv() 
     31    { 
     32        $this->renderText('hello,business'); 
     33    } 
     34     
    1735    function index() 
    1836    { 
  • trunk/test/fixtures/app/vendor/plugins

    • Property svn:externals set to

  • trunk/test/fixtures/config/config.php

    r553 r1185  
    22 
    33error_reporting(E_ALL); 
     4 
     5defined('AK_CACHE_HANDLER') ? null: define('AK_CACHE_HANDLER', 1); 
    46 
    57defined('AK_ENVIRONMENT') ? null : define('AK_ENVIRONMENT', 'testing'); 
     
    3133defined('AK_ACTIVE_RECORD_ENABLE_AUTOMATIC_SETTERS_AND_GETTERS') ? null : define('AK_ACTIVE_RECORD_ENABLE_AUTOMATIC_SETTERS_AND_GETTERS', true); 
    3234 
    33 defined('AK_TESTING_URL') ? null : define('AK_TESTING_URL', rtrim(AK_URL,'/').'/test/fixtures/public'); 
     35//defined('AK_TESTING_URL') ? null : define('AK_TESTING_URL', rtrim(AK_URL,'/').'/test/fixtures/public'); 
     36 
     37defined('AK_TESTING_URL') ? null : define('AK_TESTING_URL', 'http://localhost:81/test/fixtures/public'); 
    3438defined('AK_TESTING_REWRITE_BASE') ? null : define('AK_TESTING_REWRITE_BASE', false); 
    3539 
     
    4145 
    4246if(defined('AK_TEST_DATABASE_ON')){ 
    43     $default_profile = !empty($argv) && array_key_exists($argv[count($argv)-1], $database_settings) ? array_pop($argv) : AK_ENVIRONMENT; 
     47    $default_profile = AK_ENVIRONMENT; 
    4448    define('AK_DEFAULT_DATABASE_PROFILE', $default_profile); 
    45     $GLOBALS['database_settings'] = $database_settings; 
     49    //$GLOBALS['database_settings'] = $database_settings; 
    4650    include_once(AK_LIB_DIR.DS.'Ak.php'); 
    4751    Ak::db(); 
  • trunk/test/fixtures/public/images

    • Property svn:ignore set to
      akelos_framework_logo.png_300x300.png
      akelos_framework_logo.png_340x150.png
      akelos_framework_logo.png_50x22.jpg
      akelos_framework_logo.png_680x300.png
      akelos_framework_logo.png_85x37.png
      akelos_framework_logo.png_x300.png
      akelos_framework_logo.png.gif
      akelos_framework_logo.png.jpg
  • trunk/test/fixtures/public/index.php

    r357 r1185  
    11<?php 
    2  
     2//define('AK_HOST','localhost'); 
    33include_once(dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'config.php'); 
    4  
    5 require_once(AK_LIB_DIR.DS.'AkDispatcher.php'); 
     4$host = AK_HOST; 
     5require_once(AK_LIB_DIR.DS.'Ak.php'); 
     6$cache_settings = Ak::getSettings('caching', false); 
     7if ($cache_settings['enabled']) { 
     8     
     9    require_once(AK_LIB_DIR . DS . 'AkActionController'.DS.'AkCacheHandler.php'); 
     10    $null = null; 
     11    $pageCache = &Ak::singleton('AkCacheHandler',$null); 
     12     
     13    $pageCache->init($null, $cache_settings); 
     14    if (isset($_GET['allow_get'])) { 
     15        $options['include_get_parameters'] = split(',',$_GET['allow_get']); 
     16    } 
     17     
     18    if (isset($_GET['use_if_modified_since'])) { 
     19        $options['use_if_modified_since'] = true; 
     20    } 
     21    if (($cachedPage = $pageCache->getCachedPage())!==false) { 
     22        $cachedPage->render(); 
     23    } 
     24
     25require_once(AK_LIB_DIR . DS . 'AkDispatcher.php'); 
    626$Dispatcher =& new AkDispatcher(); 
    727$Dispatcher->dispatch(); 
  • trunk/test/unit/lib/AkActionController.php

    r1145 r1185  
    2121'http_authentication', 
    2222'model_instantiation', 
     23'page_caching', 
     24'action_caching', 
     25'sweeper', 
     26'respond_to_format' 
    2327); 
    2428 
  • trunk/test/unit/lib/AkActionController/_page_caching.php

    r1163 r1185  
    230230        $cachedPage = $this->_getCachedPage($path); 
    231231        $this->assertTrue($cachedPage!=false,$message==false?"$path should be cached":$message); 
    232         $this->assertIsA($cachedPage,'AkCachedPage'); 
    233         return $cachedPage!=false && is_a($cachedPage,'AkCachedPage'); 
     232        return $cachedPage!=false && file_exists($cachedPage); 
    234233    } 
    235234    function _assertPageNotCached($path, $message = '%s') 
     
    389388 
    390389    } 
     390     
     391    function test_format_caching() 
     392    { 
     393        $this->_flushCache('www.example.com'); 
     394        $this->get('http://www.example.com/page_caching/format'); 
     395        $this->assertHeader('Content-Type','text/html'); 
     396        $this->assertTextMatch('<h1>hello business</h1>'); 
     397         
     398        $this->_assertPageCached('/page_caching/format'); 
     399        $this->_assertPageCached('/page_caching/format.html'); 
     400        $this->_assertPageNotCached('/page_caching/format.xml'); 
     401        $this->_assertPageNotCached('/page_caching/format.csv'); 
     402         
     403        $this->get('http://www.example.com/page_caching/format'); 
     404        $this->assertHeader('Content-Type','text/html'); 
     405        $this->assertHeader('X-Cached-By','Akelos'); 
     406        $this->assertTextMatch('<h1>hello business</h1>'); 
     407         
     408        $this->get('http://www.example.com/page_caching/format.xml'); 
     409        $this->assertHeader('Content-Type','application/xml'); 
     410        $this->assertTextMatch('<hello>business</hello>'); 
     411         
     412        $this->_assertPageCached('/page_caching/format'); 
     413        $this->_assertPageCached('/page_caching/format.html'); 
     414        $this->_assertPageCached('/page_caching/format.xml'); 
     415        $this->_assertPageNotCached('/page_caching/format.csv'); 
     416         
     417        $this->get('http://www.example.com/page_caching/format.xml'); 
     418        $this->assertHeader('Content-Type','application/xml'); 
     419        $this->assertTextMatch('<hello>business</hello>'); 
     420        $this->assertHeader('X-Cached-By','Akelos'); 
     421         
     422        $this->get('http://www.example.com/page_caching/format.csv'); 
     423        $this->assertHeader('Content-Type','text/csv'); 
     424        $this->assertTextMatch('hello,business'); 
     425         
     426        $this->_assertPageCached('/page_caching/format'); 
     427        $this->_assertPageCached('/page_caching/format.html'); 
     428        $this->_assertPageCached('/page_caching/format.xml'); 
     429        $this->_assertPageCached('/page_caching/format.csv'); 
     430         
     431        $this->get('http://www.example.com/page_caching/format.csv'); 
     432        $this->assertHeader('Content-Type','text/csv'); 
     433        $this->assertTextMatch('hello,business'); 
     434        $this->assertHeader('X-Cached-By','Akelos'); 
     435 
     436    } 
    391437} 
  • trunk/test/unit/lib/AkActionController/_respond_to_format.php

    r1067 r1185  
    1717         
    1818    } 
     19    function test_xml_format_with_accept_header() 
     20    { 
     21        $_SERVER['HTTP_ACCEPT'] = 'application/xml'; 
     22        $this->get('http://www.example.com/people/listing'); 
     23        $this->assertHeader('Content-Type','application/xml'); 
     24         
     25    } 
    1926    function test_xml_format() 
    2027    { 
  • trunk/test/unit/lib/AkActionController/_sweeper.php

    r897 r1185  
    9393        $this->post('http://www.example.com/cache_sweeper/delete/'.$this->userId,array('first_name'=>'Max Schmidt')); 
    9494        $this->assertResponse(200); 
     95        $this->get('http://www.example.com/page_caching/'); 
    9596        $this->_assertCacheExists('/'.Ak::lang().'/cache_sweeper/show/'.$this->userId,array('host'=>'www.example.com')); 
    9697         
     
    116117         */ 
    117118        $this->post('http://www.example.com/cache_sweeper2/delete/'.$this->userId); 
     119        $this->get('http://www.example.com/page_caching/'); 
    118120        $this->_assertCacheExists('/'.Ak::lang().'/cache_sweeper2/show/'.$this->userId,array('host'=>'www.example.com')); 
    119121        /** 
  • trunk/test/unit/lib/AkActionView/helpers/cache_helper.php

    r1168 r1185  
    6666    function _test_cache_with_string_key($class) 
    6767    { 
     68        ob_start(); 
    6869        if (!$this->cache_helper->begin($this->fragment_key)) { 
    6970            $this->assertTrue(true); 
    7071            echo $this->fragment_text; 
    71             $this->cache_helper->end($this->fragment_key); 
     72            echo $this->cache_helper->end($this->fragment_key); 
    7273        } else { 
    7374            $this->assertFalse(true,'Should not have been cached: ' . $class); 
    7475        } 
     76        $contents = ob_get_clean(); 
    7577        $fragment = $this->controller->readFragment($this->fragment_key); 
    7678        $this->assertEqual($this->fragment_text, $fragment); 
     79        $this->assertEqual($this->fragment_text, $contents); 
    7780    } 
    7881 
     
    8386            $this->assertFalse(true,'Should have been cached: ' . $class); 
    8487            echo $this->fragment_text; 
    85             $this->cache_helper->end($this->fragment_key); 
     88            echo $this->cache_helper->end($this->fragment_key); 
    8689        } else { 
    8790            $this->assertTrue(true); 
  • trunk/test/unit/lib/AkActiveRecord/_AkActiveRecord_1.php

    r513 r1185  
    133133        $AkTestField->loadColumnsSettings(); 
    134134        // Testing database settings cache on session (this might be changed in a future 
    135         $this->assertEqual($AkTestField->_columnsSettings,$_SESSION['__activeRecordColumnsSettingsCache']['AkTestField_column_settings']); 
     135        AkDbSchemaCache::doRefresh(false); 
     136        $this->assertEqual($AkTestField->_columnsSettings,AkDbSchemaCache::getModelColumnSettings('AkTestField')); 
     137        AkDbSchemaCache::doRefresh(true); 
    136138    } 
    137139 
  • trunk/test/unit/lib/AkActiveRecord/_AkActiveRecord_connection_handling.php

    r468 r1185  
    2525         
    2626        $this->assertFalse($Model->establishConnection('not_specified_profile')); 
    27         $this->assertError("Could not find the database profile 'not_specified_profile' in config/config.php."); 
     27        $this->assertError("The environment not_specified_profile is not allowed. Allowed environments: setup,testing,development,production"); 
     28        $this->assertError("Could not find the database profile 'not_specified_profile' in config/database.yml."); 
    2829         
    2930        $check_default_connection =& AkDbAdapter::getInstance(); 
  • trunk/test/unit/lib/AkCache.php

    r468 r1185  
    66 
    77require_once(AK_LIB_DIR.DS.'AkCache.php'); 
     8 
     9defined('AK_TEST_MEMCACHED_CHECKFILE')? null: define('AK_TEST_MEMCACHED_CHECKFILE',AK_TEST_DIR.DS.DS.'unit'.DS.'config'.DS.'memcached'); 
     10 
    811 
    912class AkCache_TestCase extends  AkUnitTest  
     
    2023        $this->resetFrameworkDatabaseTables(); 
    2124    } 
    22      
    23     function setUp() 
     25 
     26    function test_all_caches() 
    2427    { 
    25         $this->Cache =& new AkCache(); 
     28        $cacheHandlers = array('cache_lite'=>1,'akadodbcache'=>2); 
     29        $memcacheEnabled = $this->_checkIfEnabled(AK_TEST_MEMCACHED_CHECKFILE); 
     30        if ($memcacheEnabled) { 
     31            $cacheHandlers['akmemcache'] = 3; 
     32        } 
     33        $unitTests = array('_testInit','_test_get_and_save','_testremove', '_Testclean'); 
     34         
     35         
     36        foreach ($cacheHandlers as $class=>$type) { 
     37            foreach ($unitTests as $test) { 
     38                unset($this->Cache); 
     39                $this->Cache =& new AkCache(); 
     40                $this->$test($type,$class); 
     41                 
     42            } 
     43            $this->Cache->clean($this->group); 
     44        } 
    2645    } 
    2746     
    28     function tearDown() 
    29     { 
    30         unset($this->Cache); 
    31     } 
    32        
    33     function Testinit() 
     47    function _testInit($type, $class) 
    3448    { 
    3549        //No driver is loaded 
     
    3852         
    3953        //Pear Cache Lite driver is loaded 
    40         $this->Cache->init(null,1); 
    41         $this->assertIsA($this->Cache->_driverInstance,'cache_lite'); 
     54        $this->Cache->init(null,$type); 
     55        $this->assertIsA($this->Cache->_driverInstance,$class); 
    4256         
    43         //AdodbCache database cache driver loaded 
    44         $this->Cache->init(null,2); 
    45         $this->assertIsA($this->Cache->_driverInstance,'akadodbcache'); 
    4657    } 
    4758     
    48     function Test_get_and_save(
     59    function _test_get_and_save($type, $class
    4960    { 
    5061         
     
    5566        $this->assertFalse(!$this->Cache->save($this->text_to_catch, $this->id, $this->group),'saving on the file cache must not work because cache is disabled'); 
    5667         
    57         //Cache Lite cache 
    58         $this->Cache->init(1,1); 
     68        $this->Cache->init(2,$type); 
    5969        $data = $this->Cache->get($this->id, $this->group); 
    60         $this->assertFalse($data,'This id must not be in the cache (File based)'); 
    61         $this->assertFalse(!$this->Cache->save($this->text_to_catch, $this->id, $this->group),'saving the  cache (File based)'); 
    62         $this->Cache->init(1,1); 
     70        $this->assertFalse($data,'This id must not be in the cache (Cache class:'.$class.')'); 
     71        $this->assertFalse(!$this->Cache->save($this->text_to_catch, $this->id, $this->group),'saving the  cache (Cache class:'.$class.')'); 
     72        $this->Cache->init(2,$type); 
    6373        $data = $this->Cache->get($this->id, $this->group); 
    64         $this->assertEqual($data, $this->text_to_catch,'Getting cached data (File based)'); 
    65         sleep(2); 
    66         $this->Cache->init(1,1); 
     74        $this->assertEqual($data, $this->text_to_catch,'Getting cached data (Cache class:'.$class.')'); 
     75        sleep(4); 
     76        $this->Cache->init(2,$type); 
    6777        $data = $this->Cache->get($this->id, $this->group); 
    68         $this->assertFalse($data,'The cache has expired and we recognize it (File based)'); 
    69          
    70          
    71          
    72         // Database cache 
    73         $this->Cache->init(1,2); 
    74         $data = $this->Cache->get($this->id, $this->group); 
    75         $this->assertFalse($data,'This id must not be in the cache (Database based)'); 
    76         $this->assertFalse(!$this->Cache->save($this->text_to_catch, $this->id, $this->group),'saving the cache (Database based)'); 
    77         $this->Cache->init(1,2); 
    78         $data = $this->Cache->get($this->id, $this->group); 
    79         $this->assertEqual($data, $this->text_to_catch,'Getting cached data (Database based)'); 
    80         sleep(2); 
    81         $this->Cache->init(1,2); 
    82         $data = $this->Cache->get($this->id, $this->group); 
    83         $this->assertFalse($data,'The cache has expired and we recognize it (Database based)'); 
     78        $this->assertFalse($data,'The cache has expired and we recognize it (Cache class:'.$class.')'); 
    8479         
    8580 
    8681    } 
    8782     
    88     function Testremove(
     83    function _testremove($type,$class
    8984    { 
    9085         
     
    9287        $this->assertFalse(!$this->Cache->remove($this->id, $this->group),'Removing cached file (Cache disabled must return success)'); 
    9388         
    94         //Cache Lite cache 
    95         $this->Cache->init(1,1); 
    96         $this->assertFalse(!$this->Cache->save($this->text_to_catch, $this->id, $this->group),'saving the cache (File based)'); 
    97         $this->Cache->init(1,1); 
     89        $this->Cache->init(3,$type); 
     90        $this->assertFalse(!$this->Cache->save($this->text_to_catch, $this->id, $this->group),'saving the cache (Cache class:'.$class.')'); 
     91        $this->Cache->init(2,$type); 
    9892        $data = $this->Cache->get($this->id, $this->group); 
    99         $this->assertEqual($data, $this->text_to_catch,'Checking that cached data has been inserted (File based)'); 
    100         $this->assertFalse(!$this->Cache->remove($this->id, $this->group),'Removing cached file (File based)'); 
     93        $this->assertEqual($data, $this->text_to_catch,'Checking that cached data has been inserted (Cache class:'.$class.')'); 
     94        $this->assertFalse(!$this->Cache->remove($this->id, $this->group),'Removing cached file (Cache class:'.$class.')'); 
    10195        $data = $this->Cache->get($this->id, $this->group); 
    102         $this->assertFalse($data,'The cache must have been removed at this point but stills here (File based)'); 
     96        $this->assertFalse($data,'The cache must have been removed at this point but stills here (Cache class:'.$class.')'); 
    10397         
    10498         
    105         //Database cache 
    106         $this->Cache->init(1,2); 
    107         $this->assertFalse(!$this->Cache->save($this->text_to_catch, $this->id, $this->group),'saving the cache (Database based)'); 
    108         $this->Cache->init(1,2); 
    109         $data = $this->Cache->get($this->id, $this->group); 
    110         $this->assertEqual($data, $this->text_to_catch,'Checking that cached data has been inserted (Database based)'); 
    111         $this->Cache->remove($this->id, $this->group); 
    112         $data = $this->Cache->get($this->id, $this->group); 
    113         $this->assertFalse($data,'The cache must have been removed at this point but stills here (Database based)'); 
    11499 
    115100    } 
    116101     
    117     function Testclean(
     102    function _Testclean($type, $class
    118103    { 
    119104                 
    120105        //AkCache::clean($group = 'false', $mode = 'ingroup'); 
    121         $this->Cache->init(1,1); 
    122         $this->assertFalse(!$this->Cache->save($this->text_to_catch, $this->id, $this->group),'saving on the file cache'); 
    123         $this->Cache->init(1,1); 
     106        $this->Cache->init(null,$type); 
     107        $this->assertFalse(!$this->Cache->save($this->text_to_catch, $this->id, $this->group),'saving ('.$class.' based)'); 
     108        $this->Cache->init(null,$type); 
    124109        $data = $this->Cache->get($this->id, $this->group); 
    125         $this->assertEqual($data, $this->text_to_catch,'Checking that cached data has been inserted (File based)'); 
     110        $this->assertEqual($data, $this->text_to_catch,'Checking that cached data has been inserted ('.$class.' based)'); 
    126111         
    127         $this->Cache->init(1,1); 
    128         $this->assertFalse(!$this->Cache->clean($this->group),'Removing all the items in cache'); 
     112        $this->Cache->init(null,$type); 
     113        $this->assertFalse(!$this->Cache->clean($this->group),'Removing all the items in cache('.$class.' based)'); 
    129114         
    130         $this->Cache->init(1,1); 
     115        $this->Cache->init(null,$type); 
    131116        $data = $this->Cache->get($this->id, $this->group); 
    132         $this->assertFalse($data,'The cache must have been removed at this point but stills here'); 
     117        $this->assertFalse($data,'The cache must have been removed at this point but stills here('.$class.' based)'); 
    133118         
    134          
    135          
    136         //AkCache::clean($group = 'false', $mode = 'ingroup'); 
    137         $this->Cache->init(1,2); 
    138         $this->assertFalse(!$this->Cache->save($this->text_to_catch, $this->id, $this->group),'saving on the file cache'); 
    139         $this->Cache->init(1,2); 
    140         $data = $this->Cache->get($this->id, $this->group); 
    141         $this->assertEqual($data, $this->text_to_catch,'Checking that cached data has been inserted (File based)'); 
    142          
    143         $this->Cache->init(1,2); 
    144         $this->assertFalse(!$this->Cache->clean($this->group),'Removing all the items in cache'); 
    145          
    146         $this->Cache->init(1,2); 
    147         $data = $this->Cache->get($this->id, $this->group); 
    148         $this->assertFalse($data,'The cache must have been removed at this point but stills here'); 
    149119 
    150120    } 
  • trunk/test/unit/lib/AkInflector.php

    r659 r1185  
    55 
    66require_once(AK_LIB_DIR.DS.'AkInflector.php'); 
    7  
    87 
    98class Test_of_AkInflector extends  UnitTestCase 
     
    315314        $this->assertEqual(AkInflector::toControllerFilename('admin/users'), AK_CONTROLLERS_DIR.DS.'admin'.DS.'users_controller.php'); 
    316315    } 
     316    function test_singularize_singular() 
     317    { 
     318        $this->assertEqual('resize',AkInflector::singularize('resize')); 
     319    } 
     320    function test_simple_tableize() 
     321    { 
     322        $this->assertEqual('Pictures',AkInflector::pluralize('Picture')); 
     323        $this->assertEqual('pictures',AkInflector::tableize('picture')); 
     324    } 
     325    function test_spanish_dictionary() 
     326    { 
     327        $this->assertNotEqual('tijeras',AkInflector::singularize('tijeras')); 
     328        $this->assertEqual('tijeras',AkInflector::singularize('tijeras',null,'es')); 
     329        $this->assertEqual('ingleses',AkInflector::pluralize('inglés',null,'es')); 
     330    } 
    317331} 
    318332 
  • trunk/test/unit/lib/AkTestApplication.php

    r1154 r1185  
    4444    } 
    4545     
    46     function test_assert_xpath() 
     46    function x_test_assert_xpath() 
    4747    { 
    4848        $test_app = new MockTestApplication();