function UsageTest::testRemoveUsage

Tests file_usage()->delete().

File

drupal/core/modules/file/lib/Drupal/file/Tests/UsageTest.php, line 83
Definition of Drupal\file\Tests\UsageTest.

Class

UsageTest
Tests file usage functions.

Namespace

Drupal\file\Tests

Code

function testRemoveUsage() {
  $file = $this
    ->createFile();
  db_insert('file_usage')
    ->fields(array(
    'fid' => $file->fid,
    'module' => 'testing',
    'type' => 'bar',
    'id' => 2,
    'count' => 3,
  ))
    ->execute();

  // Normal decrement.
  file_usage()
    ->delete($file, 'testing', 'bar', 2);
  $count = db_select('file_usage', 'f')
    ->fields('f', array(
    'count',
  ))
    ->condition('f.fid', $file->fid)
    ->execute()
    ->fetchField();
  $this
    ->assertEqual(2, $count, t('The count was decremented correctly.'));

  // Multiple decrement and removal.
  file_usage()
    ->delete($file, 'testing', 'bar', 2, 2);
  $count = db_select('file_usage', 'f')
    ->fields('f', array(
    'count',
  ))
    ->condition('f.fid', $file->fid)
    ->execute()
    ->fetchField();
  $this
    ->assertIdentical(FALSE, $count, t('The count was removed entirely when empty.'));

  // Non-existent decrement.
  file_usage()
    ->delete($file, 'testing', 'bar', 2);
  $count = db_select('file_usage', 'f')
    ->fields('f', array(
    'count',
  ))
    ->condition('f.fid', $file->fid)
    ->execute()
    ->fetchField();
  $this
    ->assertIdentical(FALSE, $count, t('Decrementing non-exist record complete.'));
}