Services_Trackback
[ class tree: Services_Trackback ] [ index: Services_Trackback ] [ all elements ]

Source for file Services_Trackback_Test.php

Documentation is available at Services_Trackback_Test.php

  1. <?php
  2.  
  3. // Includepath for local CVS development
  4. // set_include_path('/cvs/pear/Services_Trackback'.PATH_SEPARATOR.get_include_path());
  5.  
  6.     // {{{ require_once
  7.  
  8. // Services_Trackback classes
  9. require_once 'Services/Trackback.php';
  10. require_once 'Services/Trackback/SpamCheck.php';
  11.  
  12. // Unittest suite
  13. require_once 'PHPUnit.php';
  14.  
  15. // Testdata
  16. require_once dirname(__FILE__).'/trackback_data.php';
  17.  
  18.     // }}}
  19.  
  20. class Webservices_Trackback_TestCase extends PHPUnit_TestCase
  21. {
  22.     
  23.     // {{{ Webservices_Trackback_TestCase()
  24.     
  25.     // constructor of the test suite
  26.     function Webservices_Trackback_TestCase($name{
  27.        $this->PHPUnit_TestCase($name);
  28.     }
  29.  
  30.     // }}}
  31.     // {{{ setup()
  32.     
  33.     function setUp({
  34.     }
  35.  
  36.     // }}}
  37.     // {{{ tearDown()
  38.     
  39.     function tearDown({
  40.     }
  41.  
  42.     // }}}
  43.     // {{{ Test create()
  44.  
  45.     function test_create({
  46.         global $trackbackData;
  47.         $options = array(
  48.             'strictness'        => SERVICES_TRACKBACK_STRICTNESS_HIGH,
  49.             'timeout'           => 10,
  50.             'fetchlines'        => 100,
  51.             'fetchextra'        => true,
  52.             'httprequest'       => array(
  53.                 'allowRedirects'    => false,
  54.                 'maxRedirects'      => 0,
  55.                 'useragent'         => 'Mozilla 10.0',
  56.             ),
  57.         );
  58.         $fakeTrack = new Services_Trackback;
  59.         $fakeTrack->_options = $options;
  60.         $fakeTrack->_data = $trackbackData['nospam'];
  61.         $this->assertTrue(Services_Trackback::create($trackbackData['nospam']$options== $fakeTrack);
  62.     }
  63.  
  64.     // }}}
  65.     // {{{ Test setOptions()
  66.  
  67.     function test_setOptions_success({
  68.         $options = array(
  69.             'strictness'        => SERVICES_TRACKBACK_STRICTNESS_HIGH,
  70.             'timeout'           => 10,
  71.             'fetchlines'        => 100,
  72.             'fetchextra'        => true,
  73.             'httprequest'       => array(
  74.                 'allowRedirects'    => false,
  75.                 'maxRedirects'      => 0,
  76.                 'useragent'         => 'Mozilla 10.0',
  77.             ),
  78.         );
  79.         $fakeTrack = new Services_Trackback;
  80.         $fakeTrack->_options = $options;
  81.         $realTrack = new Services_Trackback;
  82.         $realTrack->setOptions($options);
  83.         $this->assertTrue($realTrack == $fakeTrack);
  84.     }
  85.  
  86.     // }}}
  87.     // {{{ Test getOptions()
  88.  
  89.     function test_getOptions_success({
  90.         $options = array(
  91.             'strictness'        => SERVICES_TRACKBACK_STRICTNESS_HIGH,
  92.             'timeout'           => 10,
  93.             'fetchlines'        => 100,
  94.             'httpRequest'       => array(
  95.                 'allowRedirects'    => false,
  96.                 'maxRedirects'      => 0,
  97.                 'useragent'         => 'Mozilla 10.0',
  98.             ),
  99.         );
  100.         $track = new Services_Trackback;
  101.         $track->_options = $options;
  102.         $this->assertTrue($track->getOptions(== $options);
  103.     }
  104.  
  105.     // }}}
  106.     // {{{ Test autodiscover()
  107.    
  108.    function test_autodiscover_success()
  109.     {
  110.         $data = array(
  111.             'id' => 'Test',
  112.             'url' => 'http://pear.php.net/package/net_ftp'
  113.         );
  114.         $track1 Services_Trackback::create($data);
  115.         $track1->autodiscover();
  116.  
  117.         $data['trackback_url''http://pear.php.net/trackback/trackback.php?id=Net_FTP';
  118.         $track2 Services_Trackback::create($data);
  119.         $this->assertTrue($track1 == $track2);
  120.     }
  121.     function test_autodiscover_failure()
  122.     {
  123.         $data = array(
  124.             'id' => 'Test',
  125.             'url' => 'http://pear.php.net/'
  126.         );
  127.         $track1 Services_Trackback::create($data);
  128.         $res $track1->autodiscover();
  129.         $this->assertTrue(PEAR::isError($res));
  130.     }
  131.     
  132.     // }}}
  133.     // {{{Test send()
  134.  
  135.     function test_send()
  136.     {
  137.         global $trackbackData;
  138.         $track Services_Trackback::create($trackbackData['nospam']);
  139.     }
  140.  
  141.     // }}}
  142.     // {{{Test getAutodiscoveryCode()
  143.  
  144.     function test_getAutodiscoveryCode_nocomments()
  145.     {
  146.         global $trackbackData;
  147.         $data $trackbackData['nospam'];
  148.         
  149.         $xml = <<<EOD
  150. <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  151.     xmlns:dc="http://purl.org/dc/elements/1.1/"
  152.     xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  153.     <rdf:Description
  154.         rdf:about="%s"
  155.         dc:identifier="%s"
  156.         dc:title="%s"
  157.         trackback:ping="%s" />
  158. </rdf:RDF>
  159.  
  160. EOD;
  161.         $xml sprintf($xml$data['url']$data['url']$data['title']$data['trackback_url']);
  162.         $track Services_Trackback::create($data);
  163.         $this->assertTrue($track->getAutodiscoveryCode(false== $xml);
  164.     }
  165.     function test_getAutodiscoveryCode_comments()
  166.     {
  167.         global $trackbackData;
  168.         $data $trackbackData['nospam'];
  169.         
  170.         $xml = <<<EOD
  171. <!--
  172. <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  173.     xmlns:dc="http://purl.org/dc/elements/1.1/"
  174.     xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  175.     <rdf:Description
  176.         rdf:about="%s"
  177.         dc:identifier="%s"
  178.         dc:title="%s"
  179.         trackback:ping="%s" />
  180. </rdf:RDF>
  181. -->
  182.  
  183. EOD;
  184.         $xml sprintf($xml$data['url']$data['url']$data['title']$data['trackback_url']);
  185.         $track Services_Trackback::create($data);
  186.         $this->assertTrue($track->getAutodiscoveryCode(== $xml);
  187.     }
  188.  
  189.     // }}}
  190.     // {{{ Test receive()
  191.     
  192.     function test_receive()
  193.     {
  194.         global $trackbackData;
  195.         $postData $trackbackData['nospam'];
  196.         $data $postData;
  197.         
  198.         $data['id'= 1;
  199.         // Not set during receive()
  200.         // unset($data['host']);
  201.         unset($data['trackback_url']);
  202.         
  203.         $recTrack Services_Trackback::create(array('id' => 1));
  204.         $recTrack->receive($postData);
  205.         $fakeTrack Services_Trackback::create($data);
  206.         $fakeTrack->set('extra'$_SERVER);
  207.         $this->assertTrue($recTrack == $fakeTrack);
  208.     }
  209.  
  210.     // }}}
  211.     // {{{ Test getResponseSuccess()
  212.     
  213.     function test_getResponseSuccess()
  214.     {
  215.         $xml = <<<EOD
  216. <?xml version="1.0" encoding="iso-8859-1"?>
  217. <response>
  218. <error>0</error>
  219. </response>
  220. EOD;
  221.         $this->assertTrue(Services_Trackback::getResponseSuccess(== $xml);
  222.     }
  223.  
  224.     // }}}
  225.     // {{{ Test getResponseError()
  226.     
  227.     function test_getResponseError()
  228.     {
  229.         $xml = <<<EOD
  230. <?xml version="1.0" encoding="iso-8859-1"?>
  231. <response>
  232. <error>-2</error>
  233. <message>Me &amp; you</message>
  234. </response>
  235. EOD;
  236.         $this->assertTrue(Services_Trackback::getResponseError('Me & you'-2== $xml);
  237.     }
  238.     
  239.     // }}}
  240.     // {{{ Test addSpamCheck
  241.     
  242.     function test_addSpamCheck_success()
  243.     {
  244.         $trackback = new Services_Trackback();
  245.         $spamCheck = new Services_Trackback_SpamCheck();
  246.         $this->assertTrue($trackback->addSpamCheck($spamCheck));
  247.     }
  248.     
  249.     function test_addSpamCheck_failure()
  250.     {
  251.         $trackback = new Services_Trackback();
  252.         $spamCheck = new Services_Trackback();
  253.         $this->assertTrue(PEAR::isError($trackback->addSpamCheck($spamCheck)));
  254.     }
  255.     
  256.     // }}}
  257.     // {{{ Test createSpamCheck
  258.     
  259.     function test_createSpamCheck_success()
  260.     {
  261.         global $trackbackData;
  262.         $trackback = new Services_Trackback($trackbackData['nospam']);
  263.         $spamCheck Services_Trackback_SpamCheck::create('DNSBL');
  264.         $this->assertTrue($trackback->createSpamCheck('DNSBL'== $spamCheck);
  265.     }
  266.     
  267.     function test_createSpamCheck_failure()
  268.     {
  269.         global $trackbackData;
  270.         $trackback = new Services_Trackback($trackbackData['nospam']);
  271.         $spamCheck Services_Trackback_SpamCheck::create('DNS');
  272.         $this->assertTrue(PEAR::isError($spamCheck));
  273.     }
  274.     
  275.     // }}}
  276.     // {{{ Test removeSpamCheck
  277.     
  278.     function test_removeSpamCheck_success()
  279.     {
  280.         $trackback = new Services_Trackback();
  281.         $spamCheck = new Services_Trackback_SpamCheck();
  282.         $trackback->addSpamCheck($spamCheck);
  283.         $this->assertTrue($trackback->removeSpamCheck($spamCheck));
  284.     }
  285.     
  286.     function test_removeSpamCheck_failure()
  287.     {
  288.         $trackback = new Services_Trackback();
  289.         $spamCheck = new Services_Trackback_SpamCheck();
  290.         $trackback->addSpamCheck($spamCheck);
  291.         $spamCheck2 = new Services_Trackback_SpamCheck();
  292.         $this->assertTrue(PEAR::isError($trackback->removeSpamCheck($spamCheck2)));
  293.     }
  294.     
  295.     // }}}
  296.     // {{{ Test _fromArray()
  297.  
  298.     function test_fromArray({
  299.         global $trackbackData;
  300.         $fakeTrack = new Services_Trackback;
  301.         $fakeTrack->_data = $trackbackData['nospam'];
  302.         $realTrack = new Services_Trackback;
  303.         $realTrack->_fromArray($trackbackData['nospam']);
  304.         $this->assertTrue($realTrack == $fakeTrack);
  305.     }
  306.  
  307.     // }}}
  308.     // {{{ Test _getContent()
  309.  
  310.     function test_getContent({
  311.         global $trackbackData;
  312.         $trackback Services_Trackback::create($trackbackData['nospam']);
  313.         $url 'http://schlitt.info/projects/PEAR/Services_Trackback/test_getContent.txt';
  314.         $fakeRes "Test text.\n";
  315.    
  316.         $res $trackback->_getContent($url);
  317.         var_dump($res);
  318.         if (PEAR::isError($res)) {
  319.             $this->fail($res->getMessage());
  320.             return;
  321.         }
  322.  
  323.         $this->assertTrue(trim($res== trim($fakeRes));
  324.     }
  325.  
  326.     // }}}
  327.     // {{{ Test _getEncodedData()
  328.  
  329.     function test_getEncodedData({
  330.         $in = array(
  331.             'foo' => 'bar & baz',
  332.             'bar' => 'foo << baz',
  333.             'baz' => 'foo && bar'
  334.         );
  335.  
  336.         $out = array(
  337.             'foo' => 'bar &amp; baz',
  338.             'bar' => 'foo &lt;&lt; baz',
  339.             'baz' => 'foo &amp;&amp; bar'
  340.         );
  341.         
  342.         $this->assertTrue(Services_Trackback::_getEncodedData(array('foo''bar''baz')$in== $out);
  343.     }
  344.     // }}}
  345.     // {{{ Test _getDecodedData()
  346.  
  347.     function test_getDecodedData({
  348.         $in = array(
  349.             'foo' => 'bar & baz',
  350.             'bar' => 'foo << baz',
  351.             'baz' => 'foo && bar'
  352.         );
  353.  
  354.         $out = array(
  355.             'foo' => 'bar & baz',
  356.             'baz' => 'foo && bar'
  357.         );
  358.         
  359.         $this->assertTrue(Services_Trackback::_getDecodedData(array('foo''baz')$in== $out);
  360.     }
  361.  
  362.     // }}}
  363.     // {{{ Test _checkData
  364.     
  365.     function test_checkData_true()
  366.     {
  367.         $keys = array('id''test');
  368.         $data = array('id' => 1'test' => 'x''test2' => 0);
  369.         $this->assertTrue(Services_Trackback::_checkData($keys$data));
  370.     }
  371.     function test_checkData_false()
  372.     {
  373.         $keys = array('id''test');
  374.         $data = array('id' => 1'test2' => 0);
  375.         $this->assertTrue(PEAR::isError(Services_Trackback::_checkData($keys$data)));
  376.     }
  377.  
  378.     // }}}
  379.     // {{{ Test _checkURLs()
  380.     
  381.     function test_checkURLs_true_1()
  382.     {
  383.         $strictness SERVICES_TRACKBACK_STRICTNESS_LOW;
  384.         $url1 "http://www.example.com/trackback/index.php";
  385.         $url2 "http://www.example.net/trackbike/index.htm";
  386.         $this->assertTrue(Services_Trackback::_checkURLs($url1$url2$strictness));
  387.     }
  388.     function test_checkURLs_true_2()
  389.     {
  390.         $strictness SERVICES_TRACKBACK_STRICTNESS_MIDDLE;
  391.         $url1 "http://www.example.com/trackback/index.php";
  392.         $url2 "http://www.example.com/trackbike/index.htm";
  393.         $this->assertTrue(Services_Trackback::_checkURLs($url1$url2$strictness));
  394.     }
  395.     function test_checkURLs_true_3()
  396.     {
  397.         $strictness SERVICES_TRACKBACK_STRICTNESS_HIGH;
  398.         $url1 "http://www.example.com/trackback/index.php";
  399.         $url2 "http://www.example.com/trackback/index.php";
  400.         $this->assertTrue(Services_Trackback::_checkURLs($url1$url2$strictness));
  401.     }
  402.  
  403.  
  404.     function test_checkURLs_false_1()
  405.     {
  406.         // No real test, should always return true
  407.         $strictness SERVICES_TRACKBACK_STRICTNESS_LOW;
  408.         $url1 "http://www.example.com/trackback/index.php";
  409.         $url2 "https://test.net/trackbike/index.htm";
  410.         $this->assertTrue(Services_Trackback::_checkURLs($url1$url2$strictness));
  411.     }
  412.     function test_checkURLs_false_2()
  413.     {
  414.         $strictness SERVICES_TRACKBACK_STRICTNESS_MIDDLE;
  415.         $url1 "http://www.example.com/trackback/index.php";
  416.         $url2 "http://www.example.net/trackback/index.php";
  417.         $this->assertTrue(PEAR::isError(Services_Trackback::_checkURLs($url1$url2$strictness)));
  418.     }
  419.     function test_checkURLs_false_3()
  420.     {
  421.         $strictness SERVICES_TRACKBACK_STRICTNESS_HIGH;
  422.         $url1 "http://www.example.com/trackback/index.php";
  423.         $url2 "http://www.example.com/trackback/index.htm";
  424.         $this->assertTrue(PEAR::isError(Services_Trackback::_checkURLs($url1$url2$strictness)));
  425.     }
  426.  
  427.     function test_checkURLs_invalid_1()
  428.     {
  429.         // No real test, should always return true
  430.         $strictness SERVICES_TRACKBACK_STRICTNESS_LOW;
  431.         $url1 "http://www.example.com/trackback/index.php";
  432.         $url2 "https://test.net/trackbike/index.htm";
  433.         $this->assertTrue(Services_Trackback::_checkURLs($url1$url2$strictness));
  434.     }
  435.     function test_checkURLs_invalid_2()
  436.     {
  437.         $strictness SERVICES_TRACKBACK_STRICTNESS_MIDDLE;
  438.         $url1 "http:///trackback/index.php";
  439.         $url2 "http://www.example.net/trackback/index.php";
  440.         $this->assertTrue(PEAR::isError(Services_Trackback::_checkURLs($url1$url2$strictness)));
  441.     }
  442.     function test_checkURLs_invalid_3()
  443.     {
  444.         // No real test, URLs are not invalid, but unequal
  445.         $strictness SERVICES_TRACKBACK_STRICTNESS_HIGH;
  446.         $url1 "http://www.example.com/trackback/index.php";
  447.         $url2 "http://www.example.com/trackback/index.htm";
  448.         $this->assertTrue(PEAR::isError(Services_Trackback::_checkURLs($url1$url2$strictness)));
  449.     }
  450.  
  451.     // 
  452.  
  453.     // }}}
  454.     // {{{ Test _interpretTrackbackResponse()
  455.  
  456.     function test_interpretTrackbackResponse_success({
  457.         $xml = <<<EOD
  458. <?xml version='1.0' encoding='iso-8859-1'?>
  459. <response>
  460. <error>0</error>
  461. </response>
  462. EOD;
  463.         $res Services_Trackback::_interpretTrackbackResponse($xml);
  464.         $this->assertTrue($res);
  465.     }
  466.     
  467.     function test_interpretTrackbackResponse_failure({
  468.         $xml = <<<EOD
  469. <?xml version='1.0' encoding='iso-8859-1'?>
  470. <response>
  471. <error>-1</error>
  472. <message>No more trackbacks from this host</message>
  473. </response>
  474. EOD;
  475.         $res Services_Trackback::_interpretTrackbackResponse($xml);
  476.         $this->assertTrue(PEAR::isError($res));
  477.     }
  478.     
  479.     function test_interpretTrackbackResponse_invalid_1({
  480.         $xml = <<<EOD
  481. <?xml version='1.0' encoding='iso-8859-1'?>
  482. <response>
  483. <error></error>
  484. <message>No more trackbacks from this host</message>
  485. </response>
  486. EOD;
  487.         $res Services_Trackback::_interpretTrackbackResponse($xml);
  488.         $this->assertTrue(PEAR::isError($res));
  489.     }
  490.     
  491.     function test_interpretTrackbackResponse_invalid_2({
  492.         $xml = <<<EOD
  493. <?xml version='1.0' encoding='iso-8859-1'?>
  494. <response>
  495. </response>
  496. EOD;
  497.  
  498.         $res Services_Trackback::_interpretTrackbackResponse($xml);
  499.         $this->assertTrue(PEAR::isError($res));
  500.     }
  501.  
  502.     // }}}
  503.  
  504. }
  505.  
  506. $suite  = new PHPUnit_TestSuite("Webservices_Trackback_TestCase");
  507. $result = PHPUnit::run($suite);
  508.  
  509. echo $result->toString();
  510.  
  511. ?>

Documentation generated on Mon, 11 Mar 2019 14:36:54 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.