diff --git a/logintoboggan.info b/logintoboggan.info
index 9e628a0..8c55d3e 100644
--- a/logintoboggan.info
+++ b/logintoboggan.info
@@ -2,3 +2,6 @@
 name = "LoginToboggan"
 description = "Improves Drupal's login system."
 core = "6.x"
+
+files[] = "tests/misc.test"
+;files[] = "tests/login.test"
diff --git a/tests/login.test b/tests/login.test
new file mode 100644
index 0000000..5512d60
--- /dev/null
+++ b/tests/login.test
@@ -0,0 +1,33 @@
+<?php
+// $Id$
+// TODO: these tests require some more planning and research before I can write them.
+
+class LoginTobogganLoginTest extends DrupalWebTestCase {
+  /**
+   * Implementation of getInfo().
+   */
+  //public static function getInfo() {
+    //return array(
+    //  'name' => t('Execute a login'),
+    //  'description' => t('Login as a new user to make sure it functions as expected.'),
+    //  'group' => t('LoginToboggan'),
+    //);
+  //}
+
+  /**
+   * Implementation of setUp().
+   */
+  function setUp() {
+    parent::setUp();
+  }
+
+  /**
+   * Test creating a pre-auth user with the core authenticated role.
+   */
+  function testAuthenticatedPreAuth() {
+    // Create and login user
+    // A role for the test will be created automatically
+    // $test_user = $this->drupalCreateUser();
+    // $this->drupalLogin($test_user);
+  }
+}
\ No newline at end of file
diff --git a/tests/misc.test b/tests/misc.test
new file mode 100644
index 0000000..fc7e44a
--- /dev/null
+++ b/tests/misc.test
@@ -0,0 +1,67 @@
+<?php
+// $Id$
+
+class LoginTobogganMiscTest extends DrupalWebTestCase {
+  /**
+   * Implementation of getInfo().
+   */
+  public static function getInfo() {
+    return array(
+      'name' => t('Miscellaneous settings'),
+      'description' => t('Tests various miscellaneous settings to make sure they behave as expected, such as 403 login forms, email confirmation boxes, etc.'),
+      'group' => t('LoginToboggan'),
+    );
+  }
+
+  /**
+   * Implementation of setUp().
+   */
+  function setUp() {
+    parent::setUp('logintoboggan');
+  }
+
+  /**
+   * Test the login screen is 403 page is available on login.
+   */
+  function test403() {
+    // If necessary enable the 403 page login form.
+    $flag = FALSE;
+    if (variable_get('site_403', NULL) != 'toboggan/denied') {
+      // Remember the old value for later.
+      $site_403 = variable_get('site_403', NULL);
+      variable_set('site_403', 'toboggan/denied');
+      $flag = TRUE;
+    }
+
+    // The admin page will always give an anonymous test user a 403.
+    $this->drupalGet('admin');
+    // Make sure it actually is a 403 page.
+    $this->assertResponse(403, t('Response code from admin page is a true 403, access denied.'));
+    $this->assertText('You may need to login below or register to access this page.', t('User login message prompting users to login is being displayed on 403 error pages.'));
+    $this->assertText('Enter the password that accompanies your username.', t('The password box has definitely been rendered on 403 pages, so we can assume the form is there.'));
+
+    // If necessary set the 'site_403' variable back to what it was.
+    if ($flag) {
+      variable_set('site_403', $site_403);
+    }
+  }
+  
+  function testEmailConfirm() {
+    // If necessary enable the two emails setting on the registration form.
+    $flag = FALSE;
+    if (variable_get('logintoboggan_confirm_email_at_registration', 0) == 0) {
+      variable_set('logintoboggan_confirm_email_at_registration', 1);
+      $flag = TRUE;
+    }
+
+    // Go to the registration page.
+    $this->drupalGet('user/register');
+    // Check for the title of the necessary form field.
+    $this->assertText('Confirm e-mail address', t('Email confirmation field exists on registration form.'));
+
+    // If necessary set the 'logintoboggan_confirm_email_at_registration' variable back to what it was.
+    if ($flag) {
+      variable_set('logintoboggan_confirm_email_at_registration', 0);
+    }
+  }
+}
\ No newline at end of file
