PageRenderTime 53ms CodeModel.GetById 25ms RepoModel.GetById 1ms app.codeStats 0ms

/Translate/Test/Case/Model/Behavior/CroogoTranslateBehaviorTest.php

https://github.com/kareypowell/croogo
PHP | 108 lines | 77 code | 10 blank | 21 comment | 1 complexity | 0aad7fb95a5a18f59bfb4e8cbf3b1df5 MD5 | raw file
  1. <?php
  2. App::uses('Node', 'Model');
  3. App::uses('CroogoTestCase', 'Croogo.TestSuite');
  4. class CroogoTranslateBehaviorTest extends CroogoTestCase {
  5. public $fixtures = array(
  6. 'plugin.users.aco',
  7. 'plugin.users.aro',
  8. 'plugin.users.aros_aco',
  9. 'plugin.blocks.block',
  10. 'plugin.comments.comment',
  11. 'plugin.contacts.contact',
  12. 'plugin.translate.i18n',
  13. 'plugin.settings.language',
  14. 'plugin.menus.link',
  15. 'plugin.menus.menu',
  16. 'plugin.contacts.message',
  17. 'plugin.nodes.node',
  18. 'plugin.meta.meta',
  19. 'plugin.taxonomy.model_taxonomy',
  20. 'plugin.blocks.region',
  21. 'plugin.users.role',
  22. 'plugin.settings.setting',
  23. 'plugin.taxonomy.taxonomy',
  24. 'plugin.taxonomy.term',
  25. 'plugin.taxonomy.type',
  26. 'plugin.taxonomy.types_vocabulary',
  27. 'plugin.users.user',
  28. 'plugin.taxonomy.vocabulary',
  29. 'plugin.translate.i18n',
  30. );
  31. public $Node = null;
  32. /**
  33. * setUp
  34. *
  35. * @return void
  36. */
  37. public function setUp() {
  38. parent::setUp();
  39. $this->Node = ClassRegistry::init('Nodes.Node');
  40. if (!CakePlugin::loaded('Translate')) {
  41. CakePlugin::load('Translate');
  42. }
  43. $this->Node->Behaviors->attach('Translate.CroogoTranslate', array(
  44. 'fields' => array(
  45. 'title' => 'titleTranslation',
  46. ),
  47. ));
  48. }
  49. /**
  50. * tearDown
  51. *
  52. * @return void
  53. */
  54. public function tearDown() {
  55. parent::tearDown();
  56. unset($this->Node);
  57. ClassRegistry::flush();
  58. }
  59. /**
  60. * testSaveTranslation
  61. *
  62. * @return void
  63. */
  64. public function testSaveTranslation() {
  65. $translationData = array(
  66. 'Node' => array(
  67. 'title' => 'About [Translated in Bengali]',
  68. ),
  69. );
  70. $this->__addNewTranslation(2, 'ben', $translationData);
  71. $about = $this->Node->findById('2');
  72. $this->assertEqual($about['Node']['title'], 'About [Translated in Bengali]');
  73. }
  74. /**
  75. * testSaveTranslationShouldFlushCacheOfModelBeingTranslated
  76. */
  77. public function testSaveTranslationShouldFlushCacheOfModelBeingTranslated() {
  78. $translationData = array('Node' => array('title' => 'Some french content'));
  79. $Behaviors = $this->getMock('Behaviors', array('trigger', 'dispatchMethod'));
  80. $Behaviors->expects($this->any())
  81. ->method('trigger')
  82. ->with(
  83. $this->equalTo('afterSave'),
  84. $this->equalTo(array($this->Node, false)),
  85. $this->equalTo(array('breakOn' => array('Cached')))
  86. );
  87. $this->Node->Behaviors = $Behaviors;
  88. $this->__addNewTranslation(2, 'fra', $translationData);
  89. }
  90. /**
  91. * __addNewTranslation
  92. */
  93. private function __addNewTranslation($id, $locale, $translationData) {
  94. $this->Node->id = $id;
  95. $this->Node->locale = $locale;
  96. $this->Node->saveTranslation($translationData);
  97. }
  98. }