Index: server/pifr_server.file.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project_issue_file_review/server/pifr_server.file.inc,v
retrieving revision 1.3
diff -u -r1.3 pifr_server.file.inc
--- server/pifr_server.file.inc	19 Jan 2009 01:05:09 -0000	1.3
+++ server/pifr_server.file.inc	19 Jan 2009 08:30:02 -0000
@@ -26,20 +26,29 @@
   pifr_log_event($file_id, t('Test request received from the project client.'));
   return $file_id;
 }
-//
-///**
-// * Get next file in queue.
-// *
-// * @return mixed File object or FALSE.
-// */
-//function pifr_server_file_next() {
-//  $file_id = db_result(db_query('SELECT file_id
-//                                 FROM {pifr_file}
-//                                 WHERE status = %d
-//                                 ORDER BY test_count, file_id
-//                                 LIMIT 1', PIFR_FILE_QUEUED));
-//  return pifr_server_file_get($file_id);
-//}
+
+/**
+ * Get next file in queue.
+ *
+ * @param object $client The client object to which the file will be sent.
+ * @return mixed File object or FALSE.
+ */
+function pifr_server_file_next($client) {
+  if ($client->status == PIFR_SERVER_CLIENT_STATUS_TESTING) {
+    // Send next test file.
+    module_load_include('inc', 'pifr_server', 'pifr_server.test');
+    return pifr_server_test_next($client);
+  }
+  elseif ($client->status == PIFR_SERVER_CLIENT_STATUS_ENABLED) { 
+    $file_id = db_result(db_query('SELECT file_id
+                                   FROM {pifr_file}
+                                   WHERE status = %d
+                                   ORDER BY test_count, file_id
+                                   LIMIT 1', PIFR_FILE_QUEUED));
+    return pifr_server_file_get($file_id);
+  }
+  return FALSE;
+}
 
 /**
  * Get a file by ID.
Index: server/pifr_server.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project_issue_file_review/server/pifr_server.install,v
retrieving revision 1.7
diff -u -r1.7 pifr_server.install
--- server/pifr_server.install	19 Jan 2009 04:59:04 -0000	1.7
+++ server/pifr_server.install	19 Jan 2009 08:30:02 -0000
@@ -285,6 +285,17 @@
 
   // Generate key.
   variable_set('pifr_server_key', md5(uniqid()));
+
+  // Copy test files to files directory.
+  $source = drupal_get_path('module', 'pifr_server') . '/test_files';
+  $destination = file_directory_path() . '/pifr_server';
+  if (file_check_directory($destination, FILE_CREATE_DIRECTORY)) {
+    $files = file_scan_directory($source, '.*');
+    foreach ($files as $file) {
+      file_copy($file->filename, $destination . '/' . $file->basename, FILE_EXISTS_REPLACE);
+    }
+    drupal_set_message(t('Copied test files successfully.'));
+  }
 }
 
 /**
Index: server/pifr_server.test.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project_issue_file_review/server/pifr_server.test.inc,v
retrieving revision 1.1
diff -u -r1.1 pifr_server.test.inc
--- server/pifr_server.test.inc	19 Jan 2009 04:59:04 -0000	1.1
+++ server/pifr_server.test.inc	19 Jan 2009 08:30:02 -0000
@@ -20,3 +20,42 @@
   // Set client status to testing.
   pifr_server_client_status_set($client_id, PIFR_SERVER_CLIENT_STATUS_TESTING);
 }
+
+function pifr_server_test_next($client) {
+  $results = pifr_server_test_get_results($client->client_id);
+  $last = ($results ? $results[0]->type : 0);
+  $next = $last + 1;
+
+  // Get file information for the next test.
+  switch ($next) {
+    case PIFR_SERVER_TEST_FETCH:
+    case PIFR_SERVER_TEST_CVS:
+    case PIFR_SERVER_TEST_APPLY:
+    case PIFR_SERVER_TEST_SYNTAX:
+    case PIFR_SERVER_TEST_INSTALL:
+    case PIFR_SERVER_TEST_FAIL:
+    case PIFR_SERVER_TEST_PASS:
+      return (object) array(
+        'file_id' => $next * -1,
+        'project_id' => -1,
+        'filepath' => file_directory_path() . '/pifr_server',
+        'filename' => 'file-' . $next . '.patch'
+      );
+  }
+}
+
+function pifr_server_test_evaluate_result($client_id, $result) {
+//  $test = $result
+}
+
+function pifr_server_test_get_results($client_id) {
+  $result = db_query('SELECT *
+  									  FROM {pifr_client_test}
+  									  WHERE client_id = %d
+  									  ORDER BY type DESC', $client_id);
+  $test_results = array();
+  while ($test_result = db_fetch_object($result)) {
+    $test_results[] = $test_result;
+  }
+  return $test_results;
+}
