devel_generate.test 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. /**
  3. * @file
  4. * Implements tests for devel_generate submodule.
  5. */
  6. /**
  7. * class DevelGenerateTest
  8. */
  9. class DevelGenerateTest extends DrupalWebTestCase {
  10. /*
  11. * The getInfo() method provides information about the test.
  12. * In order for the test to be run, the getInfo() method needs
  13. * to be implemented.
  14. */
  15. public static function getInfo() {
  16. return array(
  17. 'name' => t('Devel Generate'),
  18. 'description' => t('Tests the logic to generate data.'),
  19. 'group' => t('Devel'),
  20. );
  21. }
  22. /**
  23. * Prepares the testing environment
  24. */
  25. function setUp() {
  26. parent::setUp(array('devel', 'devel_generate', 'taxonomy', 'menu', 'comment'));
  27. // Create Basic page and Article node types.
  28. if ($this->profile != 'standard') {
  29. $this->drupalCreateContentType(array('type' => 'page', 'name' => 'Basic Page'));
  30. }
  31. }
  32. /**
  33. * Tests generate commands
  34. */
  35. public function testGenerate() {
  36. $user = $this->drupalCreateUser(array(
  37. 'administer taxonomy',
  38. 'administer menu',
  39. 'administer nodes',
  40. ));
  41. $this->drupalLogin($user);
  42. // Generate taxonomy vocabularies.
  43. $edit = array(
  44. 'num_vocabs' => 5,
  45. 'title_length' => 12,
  46. 'kill_taxonomy' => 1,
  47. );
  48. $this->drupalPost('admin/config/development/generate/vocabs',
  49. $edit, t('Generate'));
  50. $this->assertText(t('Deleted existing vocabularies.'));
  51. $this->assertText(t('Created the following new vocabularies:'));
  52. // Generate taxonomy terms.
  53. $form = devel_generate_term_form();
  54. $vids = array_keys($form['vids']['#options']);
  55. $edit = array(
  56. 'vids[]' => $vids,
  57. 'num_terms' => 5,
  58. 'title_length' => 12,
  59. 'kill_taxonomy' => 1,
  60. );
  61. $this->drupalPost('admin/config/development/generate/taxonomy',
  62. $edit, t('Generate'));
  63. $this->assertText(t('Deleted existing terms.'));
  64. $this->assertText(t('Created the following new terms: '));
  65. // Generate menus.
  66. $edit = array(
  67. 'existing_menus[__new-menu__]' => 1,
  68. 'num_menus' => 2,
  69. 'num_links' => 50,
  70. 'title_length' => 12,
  71. 'link_types[node]' => 1,
  72. 'link_types[front]' => 1,
  73. 'link_types[external]' => 1,
  74. 'max_depth' => 4,
  75. 'max_width' => 6,
  76. 'kill' => 1,
  77. );
  78. $this->drupalPost('admin/config/development/generate/menu',
  79. $edit, t('Generate'));
  80. $this->assertText(t('Deleted existing menus and links.'));
  81. $this->assertText(t('Created the following new menus:'));
  82. $this->assertText(t('Created 50 new menu links.'));
  83. // Generate content.
  84. // First we create a node in order to test the Delete content checkbox.
  85. $this->drupalCreateNode(array());
  86. // Now submit the generate content form.
  87. $edit = array(
  88. 'node_types[page]' => 1,
  89. 'kill_content' => 1,
  90. 'num_nodes' => 2,
  91. 'time_range' => 604800,
  92. 'max_comments' => 3,
  93. 'title_length' => 4,
  94. );
  95. $this->drupalPost('admin/config/development/generate/content', $edit, t('Generate'));
  96. $this->assertText(t('Deleted 1 nodes.'));
  97. $this->assertText(t('Finished creating 2 nodes'));
  98. }
  99. }