old_contents: ////////////////////////////////////////////////////////////////////////////
  //
  // Copyright 2016 Realm Inc.
  //
  // 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';
  
  var TESTS = {
      ListTests: require('./list-tests'),
      ObjectTests: require('./object-tests'),
      RealmTests: require('./realm-tests'),
      ResultsTests: require('./results-tests'),
      QueryTests: require('./query-tests'),
      QueryTests: require('./encryption-tests'),
  };
  
  var SPECIAL_METHODS = {
      beforeEach: true,
      afterEach: true,
  };
  
  exports.getTestNames = function() {
      var testNames = {};
  
      for (var suiteName in TESTS) {
          var testSuite = TESTS[suiteName];
  
          testNames[suiteName] = Object.keys(testSuite).filter(function(testName) {
              return !(testName in SPECIAL_METHODS) && typeof testSuite[testName] == 'function';
          });
      }
  
      return testNames;
  };
  
  exports.registerTests = function(tests) {
      for (var suiteName in tests) {
          TESTS[suiteName] = tests[suiteName];
      }
  };
  
  exports.runTest = function(suiteName, testName) {
      var testSuite = TESTS[suiteName];
      var testMethod = testSuite && testSuite[testName];
  
      if (testMethod) {
          testMethod.call(testSuite);
      } else if (!testSuite || !(testName in SPECIAL_METHODS)) {
          throw new Error('Missing test: ' + suiteName + '.' + testName);
      }
  };
  
new_contents: ////////////////////////////////////////////////////////////////////////////
  //
  // Copyright 2016 Realm Inc.
  //
  // 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';
  
  var TESTS = {
      ListTests: require('./list-tests'),
      ObjectTests: require('./object-tests'),
      RealmTests: require('./realm-tests'),
      ResultsTests: require('./results-tests'),
      QueryTests: require('./query-tests'),
      EncryptionTests: require('./encryption-tests'),
  };
  
  var SPECIAL_METHODS = {
      beforeEach: true,
      afterEach: true,
  };
  
  exports.getTestNames = function() {
      var testNames = {};
  
      for (var suiteName in TESTS) {
          var testSuite = TESTS[suiteName];
  
          testNames[suiteName] = Object.keys(testSuite).filter(function(testName) {
              return !(testName in SPECIAL_METHODS) && typeof testSuite[testName] == 'function';
          });
      }
  
      return testNames;
  };
  
  exports.registerTests = function(tests) {
      for (var suiteName in tests) {
          TESTS[suiteName] = tests[suiteName];
      }
  };
  
  exports.runTest = function(suiteName, testName) {
      var testSuite = TESTS[suiteName];
      var testMethod = testSuite && testSuite[testName];
  
      if (testMethod) {
          testMethod.call(testSuite);
      } else if (!testSuite || !(testName in SPECIAL_METHODS)) {
          throw new Error('Missing test: ' + suiteName + '.' + testName);
      }
  };
  
subject: fix for test naming