Hi all,

I'm facing few problems using Simpletest module.
I can't fill cck fields in a page node type.
The question is "How to do it?"
I've check subject about that : http://groups.drupal.org/node/26251 but I've not found answer.

My code :

<?php
// $Id: simpletest_example.test,v 1.1.2.4 2010/05/07 01:47:53 rfay Exp $

/**
 * Tests the SimpleTest Example module's content type.
 */
class SimpleTestPageTestCase extends DrupalWebTestCase {

  protected $privileged_user;

  public static function getInfo() {
    return array(
      'name' => 'SimpleTest Page',
      'description' => 'Ensure that the page content type provided functions properly.',
      'group' => 'SimpleTest',
    );
  }

  public function setUp() {
    parent::setUp(
      'node',
      'content',
      'fieldgroup',
      'optionwidget',
      'text',
      'number',
      'date_api',
      'date_timezone',
      'date',
      'date_popup',
      'text');
    // Create and log in our privileged user.
    $this->privileged_user = $this->drupalCreateUser( array('create page content'));
    $this->drupalLogin($this->privileged_user);
  }

  public function testPageCreate() {
    // Create node to edit.
  	$edit = array (
		  'title' => 'Test Fonctionnement Automator N2',
		  'field_page_footnote[0][value]' => $this->randomName(350),
		  'language' => 'nl-BE',
		  'field_generic_date_autopub[0][value][date]' => '16/12/2010',
		  'field_generic_date_autopub[0][value][time]' => '08:22',
		  'field_generic_date_autounpub[0][value][date]' => '30/12/2010',
		  'field_generic_date_autounpub[0][value][time]' => '17:22',
		);

    $this->drupalPost('node/add/page', $edit, t('Save'));
    $this->assertText(t('page @title has been created.', array('@title' => $edit['title'])));
  }

}

?>

Errors returned :

Failed to set field field_page_footnote[0][value] to s37572OTca2FK6WFzhFjjkHp8(...)
Failed to set field language to nl-BE	
Failed to set field field_generic_date_autopub[0][value][date] to 16/12/2010	
Failed to set field field_generic_date_autopub[0][value][time] to 08:22	
Failed to set field field_generic_date_autounpub[0][value][date] to 30/12/2010	
Failed to set field field_generic_date_autounpub[0][value][time] to 17:22

Thanks in advance
Best regards.

Comments

andreiashu’s picture

Hi,

First of all I would suggest having a look at the tests that are in the CCK module. You will find there a ContentOptionWidgetTest class that tests node add/edits.

From a first look at your code I think you don't have the right permissions for the fields you want to edit. In the CCK tests, to make things simple they create a user (see method loginWithPermissions) with 'administer content types' and 'administer nodes' among other permissions.

Hope this helps,
Andrei

dave reid’s picture

Status: Active » Postponed (maintainer needs more info)

It also looks like your setUp() function just installs the modules but doesn't actually create any fields. SimpleTests start with a clean install.

andreiashu’s picture

ah, yes, of course. Dave Reid is right: you need to add those CCK fields to the page content type in your test. My advice still applies though: have a look at the tests in the CCK module.

drecute’s picture

Please I will like to know, what about fields that are not CCK fields? I mean fields that are added in template files and taken through drupalPost for editing? How do I initialize them within the test. I see test functions such as createFieldText, so I'm, wondering if I have to create the fields within the test?

Thanks

lendude’s picture

Status: Postponed (maintainer needs more info) » Closed (outdated)

This version is not supported anymore.