/** * testValidation method * * @return void */ public function testValidation() { $this->loadFixtures('Translate', 'TranslatedItem'); $TestModel = new TranslatedItem(); $TestModel->locale = 'eng'; $TestModel->validate['title'] = '/Only this title/'; $data = array('TranslatedItem' => array('id' => 1, 'title' => array('eng' => 'New Title #1', 'deu' => 'Neue Titel #1', 'cze' => 'Novy Titulek #1'), 'content' => array('eng' => 'New Content #1', 'deu' => 'Neue Inhalt #1', 'cze' => 'Novy Obsah #1'))); $TestModel->create(); $this->assertFalse($TestModel->save($data)); $this->assertEquals($TestModel->validationErrors['title'], array('This field cannot be left blank')); $TestModel->locale = 'eng'; $TestModel->validate['title'] = '/Only this title/'; $data = array('TranslatedItem' => array('id' => 1, 'title' => array('eng' => 'Only this title', 'deu' => 'Neue Titel #1', 'cze' => 'Novy Titulek #1'), 'content' => array('eng' => 'New Content #1', 'deu' => 'Neue Inhalt #1', 'cze' => 'Novy Obsah #1'))); $TestModel->create(); $result = $TestModel->save($data); $this->assertFalse(empty($result)); }
/** * Test that additional records are not inserted for associated translations. * * @return void */ public function testNoExtraRowsForAssociatedTranslations() { $this->loadFixtures('Translate', 'TranslatedItem'); $TestModel = new TranslatedItem(); $TestModel->locale = 'spa'; $TestModel->unbindTranslation(); $TestModel->bindTranslation(array('name' => 'nameTranslate')); $data = array('TranslatedItem' => array('slug' => 'spanish-name', 'name' => 'Spanish name')); $TestModel->create($data); $TestModel->save(); $Translate = $TestModel->translateModel(); $results = $Translate->find('all', array('conditions' => array('locale' => $TestModel->locale, 'foreign_key' => $TestModel->id))); $this->assertCount(1, $results, 'Only one field should be saved'); $this->assertEquals('name', $results[0]['TranslateTestModel']['field']); }