diff --git a/tests/skinr.test b/tests/skinr.test
index 2d6ee92..e26a037 100644
--- a/tests/skinr.test
+++ b/tests/skinr.test
@@ -600,7 +600,8 @@ class SkinrDisplayTestCase extends DrupalWebTestCase {
  * Tests API functionality.
  */
 class SkinrRulesApiTestCase extends DrupalWebTestCase {
-  protected $profile = 'testing';
+  // @todo Requires http://drupal.org/node/913086
+  // protected $profile = 'testing';
 
   public static function getInfo() {
     return array(
@@ -611,28 +612,29 @@ class SkinrRulesApiTestCase extends DrupalWebTestCase {
   }
 
   function setUp() {
-    parent::setUp(array('skinr'));
-
-    // Enable php module.
-    module_enable(array('php'));
+    parent::setUp(array('skinr', 'php'));
 
     // Set up some nodes.
-    $this->nodes['article'] = $this->drupalCreateNode(array('type' => 'article', 'title' => 'Article node'));
-    $this->nodes['page']    = $this->drupalCreateNode(array('type' => 'page', 'title' => 'Page node'));
+    $this->article = $this->drupalCreateNode(array(
+      'type' => 'article',
+      'title' => 'Article node',
+    ));
+    $this->page = $this->drupalCreateNode(array(
+      'type' => 'page',
+      'title' => 'Page node',
+    ));
 
     // Set up some users.
-    $this->users['normal_user'] = $this->drupalCreateUser(array());
+    $this->web_user = $this->drupalCreateUser(array());
   }
 
   /**
    * Tests visibility of rules.
    */
   public function testSkinrRulesVisibility() {
+    global $user;
     $front = variable_get('site_frontpage', 'node');
 
-    $article = $this->nodes['article'];
-    $page    = $this->nodes['page'];
-
     $rule = (object) array(
       'title' => 'Rule 1',
       'rule_type' => 'page',
@@ -644,74 +646,64 @@ class SkinrRulesApiTestCase extends DrupalWebTestCase {
     skinr_rule_save($rule);
 
     // Test visibility when no filters are applied.
-    $this->drupalGet('');
-    $this->assertTrue(skinr_rule_is_visible($rule->rid), 'The rule is visible on the front page.');
-
-    $this->drupalGet('node/' . $article->nid);
-    $this->assertTrue(skinr_rule_is_visible($rule->rid), 'The rule is visible for an article node.');
-
-    $this->drupalGet('node/' . $page->nid);
-    $this->assertTrue(skinr_rule_is_visible($rule->rid), 'The rule is visible for a basic page node.');
+    $this->assertTrue(skinr_rule_is_visible($rule->rid, $front), 'Rule is visible on front page.');
+    $this->assertTrue(skinr_rule_is_visible($rule->rid, 'node/' . $this->article->nid), 'Rule is visible on an article node page.');
+    $this->assertTrue(skinr_rule_is_visible($rule->rid, 'node/' . $this->page->nid), 'Rule is visible on a basic page node.');
 
     // Test visibility with a node type filter.
     $rule->node_types = array('article' => 'article');
     skinr_rule_save($rule);
 
-    $this->assertFalse(skinr_rule_is_visible($rule->rid, $front), "The rule is not visible on the front page when it has the node type filter set to 'article'.");
-    $this->assertTrue(skinr_rule_is_visible($rule->rid, 'node/' . $article->nid), "The rule is visible for an article node when it has the node type filter set to 'article'.");
-    $this->assertFalse(skinr_rule_is_visible($rule->rid, 'node/' . $page->nid), "The rule is not visible for a basic page node when it has the node type filter set to 'article'.");
+    $this->assertFalse(skinr_rule_is_visible($rule->rid, $front), 'Node type limited rule is not visible on front page.');
+    $this->assertTrue(skinr_rule_is_visible($rule->rid, 'node/' . $this->article->nid), 'Node type limited rule is visible on the node type.');
+    $this->assertFalse(skinr_rule_is_visible($rule->rid, 'node/' . $this->page->nid), 'Node type limited rule is not visible on a different node type.');
 
-    // @todo Need to test with node/add/* path.
-    // Problem to solve: node_type_get_types() always returns an empty array when running tests.
+    // Verify visibility on node/add/* paths.
+    $this->assertTrue(skinr_rule_is_visible($rule->rid, 'node/add/article'), 'Node type limited rule is visible on the node type add page.');
+    $this->assertFalse(skinr_rule_is_visible($rule->rid, 'node/add/page'), 'Node type limited rule is not visible on a different node type add page.');
 
     // Test visibility with a roles filter.
     $rule->node_types = array();
-    $rule->roles = array(2 => '2');
+    $rule->roles = array(DRUPAL_AUTHENTICATED_RID => DRUPAL_AUTHENTICATED_RID);
     skinr_rule_save($rule);
 
-    // @todo Is there a way to test role API functionality without temporarily
-    //   changing global user?
-    global $user;
-    $current_user = $user;
-
-    $user = $this->users['normal_user'];
-    $this->assertTrue(skinr_rule_is_visible($rule->rid, $front), "The rule is visible for a logged-in user when it has a role filter set to 'authenticated user'.");
+    $user = $this->web_user;
+    $this->assertTrue(skinr_rule_is_visible($rule->rid, $front), 'Role limited rule is visible for authenticated users.');
 
     $user = drupal_anonymous_user();
-    $this->assertFalse(skinr_rule_is_visible($rule->rid, $front), "The rule is not visible for an anonymous user when it has a role filter set to 'authenticated user'.");
-
-    $user = $current_user;
-
+    $this->assertFalse(skinr_rule_is_visible($rule->rid, $front), 'Role limited rule is not visible for anonymous users.');
 
     // Test visibility with an exclude page filter.
     $rule->roles = array();
     $rule->pages = "<front>";
     skinr_rule_save($rule);
 
-    $this->assertFalse(skinr_rule_is_visible($rule->rid, $front), "The rule is not visible on the front page when it has the page filter set to exclude '&lt;front&gt'.");
-    $this->assertTrue(skinr_rule_is_visible($rule->rid, 'node/' . $article->nid), "The rule is visible for an article node when it has the page filter set to exclude '&lt;front&gt'.");
-    $this->assertTrue(skinr_rule_is_visible($rule->rid, 'node/' . $page->nid), "The rule is visible for a basic page node when it has the page filter set to exclude '&lt;front&gt'.");
+    $this->assertFalse(skinr_rule_is_visible($rule->rid, $front), 'Path excluded rule is not visible on excluded path.');
+    $this->assertTrue(skinr_rule_is_visible($rule->rid, 'node/' . $this->article->nid), 'Path excluded rule is visible on not excluded path.');
 
     // Test visibility with an include page filter.
     $rule->visibility = 1;
     skinr_rule_save($rule);
 
-    $this->assertTrue(skinr_rule_is_visible($rule->rid, $front), "The rule is visible on the front page when it has the page filter set to include '&lt;front&gt'.");
-    $this->assertFalse(skinr_rule_is_visible($rule->rid, 'node/' . $article->nid), "The rule is not visible for an article node when it has the page filter set to include '&lt;front&gt'.");
-    $this->assertFalse(skinr_rule_is_visible($rule->rid, 'node/' . $page->nid), "The rule is not visible for a basic page node when it has the page filter set to include '&lt;front&gt'.");
+    $this->assertTrue(skinr_rule_is_visible($rule->rid, $front), 'Path limited rule is visible on included path.');
+    $this->assertFalse(skinr_rule_is_visible($rule->rid, 'node/' . $this->article->nid), 'Path limited rule is not visible on different path.');
 
-    // Test visibility with a php page filter.
+    // Test visibility with a PHP page filter.
     $rule->visibility = 2;
-    $rule->pages = "<?php\nreturn FALSE;\n?>";
+    $rule->pages = '<?php
+return FALSE;
+?>';
     skinr_rule_save($rule);
 
-    $this->assertFalse(skinr_rule_is_visible($rule->rid, $front), "The rule is not visible on the front page when it has the page filter set to php with code always returning FALSE.");
-    $this->assertFalse(skinr_rule_is_visible($rule->rid, 'node/' . $article->nid), "The rule is not visible for an article node when it has the page filter set to php with code always returning FALSE.");
+    $this->assertFalse(skinr_rule_is_visible($rule->rid, $front), 'PHP disabled rule is not visible on front page.');
+    $this->assertFalse(skinr_rule_is_visible($rule->rid, 'node/' . $this->article->nid), 'PHP disabled rule is not visible on node type page.');
 
-    $rule->pages = "<?php\nreturn TRUE;\n?>";
+    $rule->pages = '<?php
+return TRUE;
+?>';
     skinr_rule_save($rule);
 
-    $this->assertTrue(skinr_rule_is_visible($rule->rid), "The rule is visible on the front page when it has the page filter set to php with code always returning TRUE.");
-    $this->assertTrue(skinr_rule_is_visible($rule->rid, 'node/' . $article->nid), "The rule is visible for an article node when it has the page filter set to php with code always returning TRUE.");
+    $this->assertTrue(skinr_rule_is_visible($rule->rid), 'PHP enabled rule is visible on front page.');
+    $this->assertTrue(skinr_rule_is_visible($rule->rid, 'node/' . $this->article->nid), 'PHP enabled rule is visible on node type page.');
   }
 }
