You are here

public function EckCrudTest::testProcess in Entity Construction Kit (ECK) 7.2

Confirm that entity types can be created, bundles created, etc.

File

tests/EckCrudTest.test, line 40
The EckCrudTest class.

Class

EckCrudTest
Rudimentary CRUD functionality.

Code

public function testProcess() {

  // Make sure the main Entity Types list page is present.
  $this
    ->drupalGet('admin/structure');
  $this
    ->assertResponse(200);
  $this
    ->assertLink('Entity types');
  $this
    ->assertLinkByHref('admin/structure/entity-type');

  // Load the "Entity types" list page.
  $this
    ->drupalGet('admin/structure/entity-type');
  $this
    ->assertResponse(200);
  $this
    ->assertLink('Add entity type');
  $this
    ->assertText('Entity types');
  $this
    ->assertText('Entity type');
  $this
    ->assertText('Operations');

  // @todo It would be useful to have a "no records" message when there are no entity types.
  // Create a test entity type.
  $this
    ->createEntityType();

  // Confirm the various tabs that should exist.
  $this
    ->drupalGet('admin/structure/entity-type/test_entity');
  $this
    ->assertResponse(200);
  $this
    ->assertLink('Edit');
  $this
    ->assertLinkByHref(url('admin/structure/entity-type/test_entity/edit'));
  $this
    ->assertLink('Delete');
  $this
    ->assertLinkByHref(url('admin/structure/entity-type/test_entity/delete'));
  $this
    ->assertLink('Manage properties');
  $this
    ->assertLinkByHref(url('admin/structure/entity-type/test_entity/properties'));
  $this
    ->assertLink('Bundle List');
  $this
    ->assertLinkByHref(url('admin/structure/entity-type/test_entity'));
  $this
    ->assertLink('Add bundle');
  $this
    ->assertLinkByHref(url('admin/structure/entity-type/test_entity/add'));
  $this
    ->assertLink('Test entity');
  $this
    ->assertLinkByHref(url('admin/structure/entity-type/test_entity/test_entity'));
  $this
    ->assertLink('delete');
  $this
    ->assertLinkByHref(url('admin/structure/entity-type/test_entity/test_entity/delete'));

  // Load the bundle admin page.
  $this
    ->drupalGet('admin/structure/entity-type/test_entity/test_entity');
  $this
    ->assertResponse(200);
  $this
    ->assertLink('Delete');
  $this
    ->assertLinkByHref(url('admin/structure/entity-type/test_entity/test_entity/delete'));
  $this
    ->assertLink('Edit');
  $this
    ->assertLinkByHref(url('admin/structure/entity-type/test_entity/test_entity/edit'));
  $this
    ->assertLink('Manage fields');
  $this
    ->assertLinkByHref(url('admin/structure/entity-type/test_entity/test_entity/fields'));
  $this
    ->assertLink('Manage display');
  $this
    ->assertLinkByHref(url('admin/structure/entity-type/test_entity/test_entity/display'));
  $this
    ->assertLink('Entity List');
  $this
    ->assertLinkByHref(url('admin/structure/entity-type/test_entity/test_entity'));
  $this
    ->assertLink('Add Test entity');
  $this
    ->assertLinkByHref(url('admin/structure/entity-type/test_entity/test_entity/add'));

  // @todo It would be useful to have a "no records" message when there are no entities for a given bundle.
  // @todo Confirm creating a bundle.
  // @todo Confirm adding fields, etc.
  // @todo Confirm entity object CRUD.
  // @todo Confirm deleting a bundle.
  // Confirm deleting an entity type.
  $this
    ->drupalGet('admin/structure/entity-type/test_entity/delete');
  $this
    ->assertResponse(200);
  $this
    ->assertText('All of the data (entities and bundles) from this entity type will be deleted. This action cannot be undone.');
  $this
    ->drupalPost(NULL, array(), t('Delete'));
  $this
    ->assertResponse(200);
  $this
    ->assertText('The entity type Test entity has been deleted.');

  // @todo It would be useful to have a "no records" message when there are no bundles.
  // @todo Confirm "Manage properties" functionality.
}