You are here

public function MediaBrowserPlusBypassTest::testBypassDueProperty in Media Browser Plus 7.3

Test the ability to bypass folder processing setting mbp_bypass property.

File

tests/media_browser_plus.mbp_bypass.test, line 26
Media Browser Plus folder processing bypass tests.

Class

MediaBrowserPlusBypassTest
Folder processing bypass media browser plus tests.

Code

public function testBypassDueProperty() {

  // TEST: Bypass MBP processing since file creation.
  $uri = file_unmanaged_save_data(str_repeat('01', 512));
  $file = new stdClass();
  $file->uri = $uri;
  $file->uid = 1;
  $file->filemime = 'text/plain';
  $file->type = FILE_TYPE_NONE;
  $file->filename = basename($uri);
  $file->mbp_bypass = TRUE;

  // Move the file to the right directory.
  $file = file_save($file);

  // No folder taxonomy term attached to the file.
  $this
    ->assertFalse(isset($file->field_folder), 'File has not been processed by MBP');
  unset($file);

  // TEST: Bypass future actions for a file originally processed by MBP.
  // Create test folder structure.
  $folders = array(
    'root_folder' => 'Media Folders',
    'bypass_folder' => $this
      ->randomName(),
  );
  $hierarchy = array(
    'root_folder' => array(
      $folders['bypass_folder'] => array(),
    ),
  );
  $this
    ->drupalLogin($this->adminUser);
  $this
    ->folderCreationHelper($hierarchy, FALSE);
  foreach (media_get_local_stream_wrappers() as $scheme => $scheme_info) {

    // Create file on the root folder.
    $file = $this
      ->createTestFile('text/plain', NULL, $scheme);

    // Get the root_folder.
    $root_folder = media_browser_plus_get_media_root_folder();

    // File folder TERM is the root folder.
    $this
      ->assertTrue($file->field_folder[LANGUAGE_NONE][0]['tid'] === $root_folder->tid, format_string('File saved with the root folder TERM by MBP for scheme %scheme', array(
      '%scheme' => $scheme,
    )));

    // File folder PATH is the root folder.
    $this
      ->assertTrue($file->uri === file_stream_wrapper_uri_normalize(file_uri_scheme($file->uri) . '://' . media_browser_plus_construct_dir_path($root_folder) . '/' . basename($file->uri)), format_string('File saved on the root folder by MBP for scheme %scheme', array(
      '%scheme' => $scheme,
    )));

    // Move the file to the TestBypass folder...
    $terms = taxonomy_get_term_by_name($folders['bypass_folder']);
    $folder = reset($terms);
    $file->field_folder[LANGUAGE_NONE][0]['tid'] = $folder->tid;

    // ...but bypass!
    $file->mbp_bypass = TRUE;
    $file = file_save($file);

    // File folder TERM is not the root folder.
    $this
      ->assertFalse($file->field_folder[LANGUAGE_NONE][0]['tid'] === $root_folder->tid, format_string('File saved with the root folder TERM by MBP for scheme %scheme', array(
      '%scheme' => $scheme,
    )));

    // File folder PATH is still the root folder.
    $this
      ->assertTrue($file->uri == file_stream_wrapper_uri_normalize(file_uri_scheme($file->uri) . '://' . media_browser_plus_construct_dir_path($root_folder) . '/' . basename($file->uri)), format_string('File saved on the root folder by MBP for scheme %scheme', array(
      '%scheme' => $scheme,
    )));
  }
}