/**
 * Copyright 2014 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

'use strict';

if (!process.env.GCLOUD_TESTS_PROJECT_ID && !process.env.GCLOUD_TESTS_KEY) {
  var error = [
    'To run the system tests, you need to set some environment variables.',
    'Please check the Contributing guide for instructions.'
  ].join('\n');
  throw error;
}

module.exports = {
  keyFilename: process.env.GCLOUD_TESTS_KEY,
  projectId: process.env.GCLOUD_TESTS_PROJECT_ID
};

@@ -631,12 +631,86 @@
 ';%0A%0A
+var googleCloudConfig = %7B%7D;%0A%0A
 if (
+!process.env.GCLOUD_TESTS_CREDENTIALS &&%0A    
 !pro
@@ -744,16 +744,20 @@
 CT_ID &&
+%0A   
  !proces
@@ -788,20 +788,24 @@
 %7B%0A  
-var e
+throw new E
 rror
- = 
+(
 %5B%0A  
@@ -956,140 +956,382 @@
 %5Cn')
+)
 ;%0A
-  throw error;%0A%7D%0A%0Amodule.exports = %7B%0A  keyFilename: process.env.GCLOUD_TESTS_KEY,%0A  projectId: process.env.GCLOUD_TESTS_PROJECT_ID%0A%7D
+%7D%0A%0Avar credentials = process.env.GCLOUD_TESTS_CREDENTIALS;%0A%0Aif (credentials) %7B%0A  googleCloudConfig.credentials = JSON.parse(credentials);%0A  googleCloudConfig.projectId = credentials.project_id;%0A%7D else %7B%0A  googleCloudConfig.projectId = process.env.GCLOUD_TESTS_PROJECT_ID;%0A  googleCloudConfig.keyFilename = process.env.GCLOUD_TESTS_KEY;%0A%7D%0A%0Amodule.exports = googleCloudConfig
 ;%0A

add system test running capabilities (#1592)