diff --git resources/system_resource.inc resources/system_resource.inc
index e71befc..e1f9219 100644
--- resources/system_resource.inc
+++ resources/system_resource.inc
@@ -109,6 +109,6 @@ function _system_resource_get_variable($name, $default) {
  *
  * @see variable_set()
  */
-function _system_service_set_variable($name, $value) {
+function _system_resource_set_variable($name, $value) {
   variable_set($name, $value);
 }
diff --git services.info services.info
index e5d8649..7a235f2 100644
--- services.info
+++ services.info
@@ -15,9 +15,9 @@ files[] = services.servers.api.php
 files[] = serviers.services.api.php
 files[] = tests/functional/NoAuthEndpointTestRunner.test
 files[] = tests/functional/ServicesResourceNodeTests.test
-files[] = tests/functional/ServicesResourceUserTests.test
+files[] = tests/functional/ServicesResourceSystemTests.test
 files[] = tests/functional/ServicesEndpointTests.test
 files[] = tests/unit/TestServicesModule.test
 files[] = tests/services.test
 
-dependencies[] = ctools
\ No newline at end of file
+dependencies[] = ctools
diff --git tests/functional/ServicesResourceSystemTests.test tests/functional/ServicesResourceSystemTests.test
new file mode 100644
index 0000000..0a27257
--- /dev/null
+++ tests/functional/ServicesResourceSystemTests.test
@@ -0,0 +1,102 @@
+<?php
+// $Id: ServicesResourceSystemTests.test,v 1.1.2.1 2011/01/19 00:34:49 ocyrus Exp $
+
+/**
+ * @file
+ * Call the endpoint tests when no authentication is being used.
+ *
+ */
+
+/**
+ * Run test cases for the endpoint with no authentication turned on.
+ *
+ */
+class ServicesResourceSystemTests extends ServicesWebtestCase {
+  // Class variables
+  protected $privileged_user = NULL ;
+  // Endpoint details.
+  protected $endpoint = NULL;
+
+  /**
+   * Implementation of setUp().
+   */
+  public function setUp() {
+    parent::setUp(
+      'ctools',
+      'services',
+      'rest_server'
+    );
+    // Set up endpoint.
+    $this->endpoint =  $this->saveNewEndpoint();
+    // Set up privileged user and login.
+    $this->privileged_user = $this->drupalCreateUser(array('get a system variable', 'set a system variable'));
+    $this->drupalLogin($this->privileged_user);
+  }
+
+  /**
+   * Implementation of getInfo().
+   */
+  public static function getInfo() {
+   return array(
+     'name'        => t('Resource System'),
+     'description' => t('Test the resource System methods.'),
+     'group'       => t('Services'),
+   );
+  }
+
+  /**
+   * Test connect method.
+   */
+  function testSystemConnect() {
+    $path = $this->endpoint->path;
+    // Call as authenticated user.
+    $response = $this->servicesPost($path . '/system/connect');
+    $response_user = $response['body']->user;
+    $this->assertEqual($response_user->uid, $this->privileged_user->uid, t('User account received for authenticated user.'), 'SystemResource: Connect');
+
+    $this->drupalLogout();
+    // Call as anonymous user.
+    $response = $this->servicesPost($path . '/system/connect');
+    $response_user = $response['body']->user;
+    $this->assertEqual($response_user->uid, 0, t('User account received for anonymous user.'), 'SystemResource: Connect');
+  }
+
+  /**
+   * Test get_variable method.
+   */
+  function testSystemGetVariable() {
+    $path = $this->endpoint->path;
+
+    $name = $this->randomName();
+    $value = $this->randomString();
+    variable_set($name, $value);
+
+    // Get already set variable.
+    $response = $this->servicesPost($path . '/system/get_variable', array('name' => $name, 'default' => $this->randomString()));
+    $this->assertEqual($value, $response['body'], t('Variable get value.'), 'SystemResource: get_variable');
+
+    $name = $this->randomName();
+    $default = $this->randomString();
+
+    // Get not defined variable. Ensure we get back default value.
+    $response = $this->servicesPost($path . '/system/get_variable', array('name' => $name, 'default' => $default));
+    $this->assertEqual($default, $response['body'], t('Variable get value default.'), 'SystemResource: get_variable');
+  }
+
+  /**
+   * Test set_variable method.
+   */
+  function testSystemSetVariable() {
+    $path = $this->endpoint->path;
+
+    $name = $this->randomName();
+    $value = $this->randomString();
+
+    $response = $this->servicesPost($path . '/system/set_variable', array('name' => $name, 'value' => $value));
+
+    // We can't use variable_get as variables get cached to global variable.
+    $variable = unserialize(db_query('SELECT value FROM {variable} WHERE name = :name', array(':name' => $name))->fetchField());
+
+    $this->assertEqual($value, $variable, t('Variable set value.'), 'SystemResource: set_variable');
+  }
+}
