--- /dev/null
+<?php
+
+namespace Unish;
+
+/**
+ * Tests for site-install on a Drupal 6 installation.
+ *
+ * @group commands
+ */
+class siteInstallD6Case extends CommandUnishTestCase {
+
+ function setUp() {
+ if (UNISH_DRUPAL_MAJOR_VERSION != 6) {
+ $this->markTestSkipped('This test class is designed for Drupal 6.');
+ return;
+ }
+ }
+
+ /**
+ * Test a D6 install with extra options.
+ */
+ public function testExtraConfigurationOptions() {
+ // Set up codebase without installing Drupal.
+ $sites = $this->setUpDrupal(1, FALSE, '6');
+ $root = $this->webroot();
+ $site = key($sites);
+
+ // Copy the "example" test profile into the newly created site's profiles directory
+ $profile_dir = "$root/profiles/example";
+ mkdir($profile_dir);
+ copy(dirname(__FILE__) . '/resources/example.profile', $profile_dir . '/example.profile');
+
+ $test_string = $this->randomString();
+ // example.profile Has values 0-2 defined as allowed.
+ $test_int = rand(0, 2);
+ $site_name = $this->randomString();
+
+ $this->drush('site-install', array(
+ // First argument is the profile name
+ 'example',
+ // Then the extra profile options
+ "myopt1=$test_string",
+ "myopt2=$test_int",
+ ),
+ array(
+ 'db-url' => $this->db_url($site),
+ 'yes' => NULL,
+ 'sites-subdir' => $site,
+ 'root' => $root,
+ 'site-name' => $site_name,
+ 'uri' => $site,
+ ));
+
+ $this->checkVariable('site_name', $site_name, $site);
+ $this->checkVariable('myopt1', $test_string, $site);
+ $this->checkVariable('myopt2', $test_int, $site);
+ }
+
+ /**
+ * Check the value of a Drupal variable against an expectation using drush.
+ *
+ * @param $name
+ * The variable name.
+ * @param $value
+ * The expected value of this variable.
+ * @param $site
+ * The name of an individual multisite installation site.
+ */
+ private function checkVariable($name, $value, $site) {
+ $options = array(
+ 'root' => $this->webroot(),
+ 'uri' => $site,
+ );
+
+ $this->drush('variable-get', array($name), $options);
+ $this->assertEquals("$name: $value", $this->getOutput());
+ }
+}