Development

/plugins/diemPlugin/trunk/dmCorePlugin/test/unit/dmFormMergeI18nTest.php

You must first sign up to be able to contribute.

root/plugins/diemPlugin/trunk/dmCorePlugin/test/unit/dmFormMergeI18nTest.php

Revision 24987, 1.3 kB (checked in by ornicar2, 3 years ago)

[Diem] ALPHA6 : COMPATIBILITY BREAK
- refactored search subframework to be more flexible and testable
- refactored seo_synchronizer service to handle multilinguism
- fixed usage of dmDoctrineQuery->isActive in admin generated module actions
- made DmPage? is_secure field translatable ( compatibility break )
- added DmSetting? table in admin database core diagram
- added translation tables in admin database diagrams
- removed generated diagrams page h1
- made DmWidget? translatable ( compatibility break )
- made DmAutoSeo? translatable ( compatibility break )
- made DmMailTemplate? translatable ( compatibility break )
- fixed admin search engine querying
- fixed search engine description when many culture indices
- added search_engine service dir option
- added search_index service culture and name options
- added the new search_document service with a culture option
- added the new search_hit service with score and page_id options
- added page_i18n_builder service to listen page creation and create missing translations
- removed search_engine logger dependency
- removed search_index logger and filesystem dependencies
- removed layoutType index on DmArea? table
- changed front and admin automatic functional tests default env to prod
- added default favicon
- fixed dmRecordLoremizer on translatable tables
- improved dmDoctrineQuery->whereIsActive method to handle translated is_active fields
- added dmDoctrineQuery->fetchOneArray shortcut method
- added dmDoctrineRecord->hasCurrentTranslation
- enhanced dmDoctrineRecord preSave hook to notify an update even if only the translated table has been modified
- added dmDoctrineRecord->toArrayWithI18n method
- fixed dmDoctrineRecord->getI18nFallback() should return null on new records
- removed translation table id field from human columns
- made dmDoctrineTable->getColumnDefinition return the translated column definitions
- made dmDoctrineTable->getIdentifierColumnName method use the translated fields
- added dmFormDoctrine i18n fallback capabilities
- added dmI18n->getCultures and setCultures method
- refactored PluginDmAutoSeoTable?
- improved performances on DmLayout? creation
- fixed action modification detection when saving a DmPage? record
- added dm.page_post_save event
- removed deprecated PluginDmPage?->getDmAutoSeo() method
- made PluginDmPageTable?->findOneBySlug method use an innerJoin for the translation, as we search on the translated slug
- added PluginDmWidget?->toArrayWithMappedValue() method with i18n fallback capability for value field
- fixed bug when refreshing page on dmPageSynchronizer before moving it in the tree
- made dmPageTreeWatcher synchronize SEO for each culture
- added dmBackup->setDir method to ease unit tests
- deprecated dmFrontPageIndexableContentTask
- fixed dm:setup task when no models are declared in user schema.yml
- added dmSyncPageTask
- removed deprecated dmGenerateMigrationTask
- made dmFrontFunctionalTest expect a 401 status code on login page
- made dmSeoSynchronizerThread run the synchronization for each culture
- removed culture tests in dmCoreUser to ease multilingual tests
- fixed dmLinkTag attributes to remove
- fixed dmLinkTag detection of empty params
- added 21 unit test files
- made dmTestHelper and dmPageTestHelper more robust
- made culture selection in front application follow the current page even if the slug has changed
- tested jQuery 1.4a1 : it doesn't work yet
- added widget_css_class_pattern page_helper option
- removed page_helper_service dependence to i18n service
- added automatic i18n query inclusion on front list component
- fixed dmWidgetBaseForm use latest widget default value to use the translated value
- made dmWidgetBaseView more robust
- made dmFrontPageViewHelper and dmFrontPageEditHelper extend dmFrontPageBaseHelper
- made front_helper service extend dmConfigurable, and easier to extend
- dropped compatibility fix on front base actions

Line 
1 <?php
2
3 require_once(dirname(__FILE__).'/helper/dmTestHelper.php');
4 $helper = new dmTestHelper();
5 $helper->boot();
6
7 $t = new lime_test();
8
9 $settingTable = dmDb::table('DmSetting');
10 $settingTranslationTable = dmDb::table('DmSettingTranslation');
11 $user = $helper->get('user');
12 $i18n = $helper->get('i18n');
13
14 $i18n->setCultures(array_merge(
15   $i18n->getCultures(),
16   array('c1', 'c2')
17 ));
18
19 $user->setCulture(sfConfig::get('sf_default_culture'));
20
21 $t->diag('Clearing settings translations for cultures c1 and c2');
22
23 $settingTranslationTable->createQuery('t')->whereIn('t.lang', array('c1', 'c2'))->delete()->execute();
24
25 $t->diag('load a setting');
26 $setting = dmDb::query('DmSetting s')->withI18n()->fetchOne();
27
28 $form = new DmSettingForm($setting);
29
30 $settingValues = $setting->toArrayWithI18n(false);
31 unset($settingValues['lang']);
32 ksort($settingValues);
33 $formDefaults = $form->getDefaults();
34 ksort($formDefaults);
35 $t->is($formDefaults, $settingValues, 'Form defaults contain i18n existing values');
36
37 $t->diag('Giving the user a new culture the setting does NOT have');
38 $user->setCulture('c1');
39
40 $form = new DmSettingForm($setting);
41
42 $settingValues = $setting->toArrayWithI18n(false);
43
44 unset($settingValues['lang']);
45 ksort($settingValues);
46 $formDefaults = $form->getDefaults();
47 ksort($formDefaults);
48 $t->is($formDefaults, $settingValues, 'Form defaults contain i18n fallback values');
Note: See TracBrowser for help on using the browser.