You are here

doc.test in Views data export 7.4

File

tests/exporter_tests/doc.test
View source
<?php

class DOCExportViewsDataExportExporterTests extends ViewsDataExportExporterBaseTest {
  protected $profile = 'testing';
  public static function getInfo() {
    return array(
      'name' => 'DOC Exporter Test',
      'description' => 'Various tests for export using the DOC exporter class.',
      'group' => 'Views Data Export',
    );
  }
  protected function getExporter($options = array()) {

    // todo Replace require_once with an autoloader.
    require_once dirname(__FILE__) . '/../../exporters/views_data_export_exporter_doc.inc';
    $classname = $this
      ->getExporterClassName();
    return new $classname($options);
  }
  protected function getExporterClassName() {
    return 'ViewsDataExportExporterDOC';
  }

  /**
   * A very simple test dataset.
   */
  protected function dataSet() {
    return array(
      array(
        'name' => 'John',
        'age' => 25,
        'job' => 'Singer',
        'created' => gmmktime(0, 0, 0, 1, 1, 2000),
      ),
      array(
        'name' => 'George',
        'age' => 27,
        'job' => 'Singer',
        'created' => gmmktime(0, 0, 0, 1, 2, 2000),
      ),
      array(
        'name' => 'Ringo',
        'age' => 28,
        'job' => 'Drummer',
        'created' => gmmktime(6, 30, 30, 1, 1, 2000),
      ),
      array(
        'name' => 'Paul',
        'age' => 26,
        'job' => 'Songwriter',
        'created' => gmmktime(6, 0, 0, 1, 1, 2000),
      ),
      array(
        'name' => 'Meredith',
        'age' => 30,
        'job' => 'Speaker',
        'created' => gmmktime(6, 30, 10, 1, 1, 2000),
      ),
    );
  }

  /**
   * Test the header writing.
   */
  protected function testBOF() {
    $result = $this
      ->executeBOF($this
      ->getExporter(array(
      'field_labels' => array(
        'Name',
        'Age',
        'Job',
        'Created',
      ),
    )));
    $expected = '<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  </head>
  <body>
    <table>
      <thead><tr><th>Name</th><th>Age</th><th>Job</th><th>Created</th></tr></thead>
      <tbody>
';
    $this
      ->logVerboseResult($result, 'Actual result');
    $this
      ->logVerboseResult($expected, 'Expected result');
    $this
      ->assertEqual($result, $expected, 'The header is as expected.');
  }

  /**
   * Test that content rows are written correctly.
   */
  protected function testBodyWrite() {
    $result = $this
      ->executeFullWrite($this
      ->getExporter(), $this
      ->dataSet(), 0, array(
      'Name',
      'Age',
      'Job',
      'Created',
    ));
    $expected = '        <tr class="odd"><td>John</td><td>25</td><td>Singer</td><td>946684800</td></tr>
        <tr class="even"><td>George</td><td>27</td><td>Singer</td><td>946771200</td></tr>
        <tr class="odd"><td>Ringo</td><td>28</td><td>Drummer</td><td>946708230</td></tr>
        <tr class="even"><td>Paul</td><td>26</td><td>Songwriter</td><td>946706400</td></tr>
        <tr class="odd"><td>Meredith</td><td>30</td><td>Speaker</td><td>946708210</td></tr>
';
    $this
      ->logVerboseResult($result, 'Actual result');
    $this
      ->logVerboseResult($expected, 'Expected result');
    $this
      ->assertEqual($result, $expected, 'The content is as expected.');
  }

  /**
   * Test End Of File.
   */
  protected function testEOF() {
    $exporter = $this
      ->getExporter();
    $result = $this
      ->executeEOF($exporter);
    $expect = '      </tbody>
    </table>
  </body>
</html>';
    $this
      ->logVerboseResult($result, 'Actual result');
    $this
      ->logVerboseResult($expect, 'Expected to contain');
    $this
      ->assertEqual($result, $expect, 'The EOF is as expected.');
  }

}