text: // Copyright 2016 The Chromium Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  
  #include "chrome/browser/media/library_cdm_test_helper.h"
  
  #include "base/command_line.h"
  #include "base/logging.h"
  #include "base/native_library.h"
  #include "base/path_service.h"
  #include "base/token.h"
  #include "content/public/common/cdm_info.h"
  #include "media/base/media_switches.h"
  #include "media/cdm/cdm_paths.h"
  
  void RegisterClearKeyCdm(base::CommandLine* command_line,
                           bool use_wrong_cdm_path) {
    // External ClearKey is a loadable_module used only tests.
    base::FilePath cdm_path;
    base::PathService::Get(base::DIR_GEN_TEST_DATA_ROOT, &cdm_path);
    std::string cdm_library_name =
        use_wrong_cdm_path ? "invalidcdmname" : media::kClearKeyCdmLibraryName;
    cdm_path = cdm_path
                   .Append(media::GetPlatformSpecificDirectory(
                       media::kClearKeyCdmBaseDirectory))
                   .AppendASCII(base::GetLoadableModuleName(cdm_library_name));
  
    // Append the switch to register the Clear Key CDM path.
    command_line->AppendSwitchNative(switches::kClearKeyCdmPathForTesting,
                                     cdm_path.value());
  }
  