Эх сурвалжийг харах

Tests: Update blastdb node.

Lacey Sanderson 6 жил өмнө
parent
commit
5cd010b013

+ 70 - 1
tests/BlastDBNodeTest.php

@@ -55,7 +55,7 @@ class BlastDBNodeTest extends TripalTestCase {
 	      'db_path' => '/fake/path/here',
 	      'db_dbtype' => 'nucleotide',
 	      'dbxref_linkout_type' => 'none',
-	      'cvitjs_enabled' => FALSE,
+	      'cvitjs_enabled' => 0,
 	      'op' => t('Save'),
 	    ),
 	  );
@@ -78,4 +78,73 @@ class BlastDBNodeTest extends TripalTestCase {
 	  // log out the god user.
 	  $user = drupal_anonymous_user();
   }
+
+  /**
+   * Update an existing Blast Database Node.
+   */
+  public function testBlastDBNodeUpdate() {
+
+    // Log in the god user.
+    global $user;
+	  $user = user_load(1);
+
+    // Create the node in the first place.
+    // @todo move this into a data seeder.
+    $node = new \stdClass();
+    $node->title = "Test Blast Database";
+    $node->type = "blastdb";
+    node_object_prepare($node);
+
+    $node->language = LANGUAGE_NONE;
+    $node->uid = $user->uid;
+    $node->status = 1;  // published.
+    $node->promote = 0; // not promoted.
+    $node->comment = 0; // disabled.
+
+    $node->db_name = 'Test Blast Database';
+    $node->db_path = '/fake/path/here';
+    $node->db_dbtype = 'nucleotide';
+    $node->dbxref_linkout_type = 'none';
+    $node->cvitjs_enabled = 0;
+
+    $node = node_submit($node);
+    node_save($node);
+
+    // Now use the form to edit it :-)
+    // Specifically, we will change the name and type.
+	  $form_state = array(
+	    'values' => array(
+  	    'db_name' => 'Test Protein Blast Database',
+	      'db_path' => '/fake/path/here',
+	      'db_dbtype' => 'protein',
+	      'dbxref_linkout_type' => 'none',
+	      'cvitjs_enabled' => 0,
+	      'op' => t('Save'),
+	    ),
+	  );
+
+	  // Execute the node creation form.
+	  drupal_form_submit('blastdb_node_form', $form_state, $node);
+
+    // Retrieve any errors.
+    $errors = form_get_errors();
+    print_r($errors);
+
+    // Assert that there must not be any.
+    $this->assertEmpty($errors);
+
+    // Check that there is a test blast database.
+    $result = db_query('SELECT * FROM {blastdb} WHERE name=:name AND dbtype=:type',
+      array(':name' => $form_state['values']['db_name'], ':type' => $form_state['values']['db_dbtype']));
+    $this->assertEquals($result->rowCount(), 1);
+
+	  // log out the god user.
+	  $user = drupal_anonymous_user();
+
+  }
+
+  /**
+   * Test deleting a node.
+   * NOTE: We cannot test this via drupal_form_submit() since it requires a confirmation.
+   */
 }