PHP Classes

File: tests/Site/FacebookTest.php

Recommend this page to a friend!
  Classes of Koala Yeung   Widgetfy   tests/Site/FacebookTest.php   Download  
File: tests/Site/FacebookTest.php
Role: Unit test script
Content type: text/plain
Description: Unit test script
Class: Widgetfy
Generate HTML to embed video content of given URL
Author: By
Last change: Update of tests/Site/FacebookTest.php
Date: 2 months ago
Size: 6,508 bytes
 

Contents

Class file image Download
<?php

/**
 * Unit test for Phata\Widgetfy\Site\Facebook
 *
 * Licence:
 *
 * This file is part of Widgetfy.
 *
 * Widgetfy is free software: you can redistribute
 * it and/or modify it under the terms of the GNU
 * Lesser General Public License as published by the
 * Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 *
 * Widgetfy is distributed in the hope that it will
 * be useful, but WITHOUT ANY WARRANTY; without even
 * the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser
 * General Public Licensefor more details.
 *
 * You should have received a copy of the GNU Lesser
 * General Public License along with Widgetfy. If
 * not, see <http://www.gnu.org/licenses/lgpl.html>.
 *
 * Description:
 *
 * This file is a unit test for
 * - Phata\Widgetfy\Site\Facebook
 *
 * @package Widgetfy
 * @author Koala Yeung <koalay@gmail.com>
 * @copyright 2014 Koala Yeung
 * @licence http://www.gnu.org/licenses/lgpl.html
 * @link http://github.com/Phata/Widgetfy
 */

use Phata\Widgetfy\Site\Facebook as Facebook;
use
PHPUnit\Framework\TestCase;

class
FacebookTest extends TestCase {

    public function
testTranslateVideo1() {
       
$url = 'https://www.facebook.com/video.php?v=10152802584496147';
       
$url_parsed = parse_url($url);
       
$this->assertNotFalse($info = Facebook::preprocess($url_parsed));

       
// test returning embed code
       
$options = array('width'=>640);
       
$embed = Facebook::translate($info, $options);
       
$this->assertEquals($info['data-href'], 'https://www.facebook.com/video.php?v=10152802584496147&type=1');
       
$this->assertEquals($embed['html'],
           
'<div id="fb-root"></div>'.
           
'<script>'.
           
'(function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0];'.
           
'if (d.getElementById(id)) return;js = d.createElement(s); '.
           
'js.id = id;js.src = "//connect.facebook.net/zh_HK/sdk.js#xfbml=1&version=v2.3";'.
           
'fjs.parentNode.insertBefore(js, fjs);}'.
           
'(document, \'script\', \'facebook-jssdk\'));'.
           
'</script>'.
           
'<div class="fb-video" data-allowfullscreen="1" '.
           
'data-href="'.$info['data-href'].'" data-width="640">'.
           
'</div>'
       
);
       
$this->assertEquals($embed['type'], 'javascript');
       
$this->assertEquals($embed['dimension']->width, 640);
       
$this->assertFalse($embed['dimension']->factor);
    }

    public function
testTranslateVideo2() {
       
$url = 'https://www.facebook.com/#!/video.php?v=10152802584496147';
       
$url_parsed = parse_url($url);
       
$this->assertNotFalse($info = Facebook::preprocess($url_parsed));

       
// test returning embed code
       
$options = array('width'=>640);
       
$embed = Facebook::translate($info, $options);
       
$this->assertEquals($info['data-href'], 'https://www.facebook.com/video.php?v=10152802584496147&type=1');
       
$this->assertEquals($embed['html'],
           
'<div id="fb-root"></div>'.
           
'<script>'.
           
'(function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0];'.
           
'if (d.getElementById(id)) return;js = d.createElement(s); '.
           
'js.id = id;js.src = "//connect.facebook.net/zh_HK/sdk.js#xfbml=1&version=v2.3";'.
           
'fjs.parentNode.insertBefore(js, fjs);}'.
           
'(document, \'script\', \'facebook-jssdk\'));'.
           
'</script>'.
           
'<div class="fb-video" data-allowfullscreen="1" '.
           
'data-href="'.$info['data-href'].'" data-width="640">'.
           
'</div>'
       
);
       
$this->assertEquals($embed['type'], 'javascript');
       
$this->assertEquals($embed['dimension']->width, 640);
       
$this->assertFalse($embed['dimension']->factor);
    }

    public function
testTranslateVideo3() {
       
$url = 'https://www.facebook.com/RedBullBike/videos/vb.572719819512238/781424595308425/?type=2&theater';
       
$url_parsed = parse_url($url);
       
$this->assertNotFalse($info = Facebook::preprocess($url_parsed));

       
// test returning embed code
       
$options = array('width'=>640);
       
$embed = Facebook::translate($info, $options);
       
$this->assertEquals($info['data-href'], '/RedBullBike/videos/vb.572719819512238/781424595308425/?type=1');
       
$this->assertEquals($embed['html'],
           
'<div id="fb-root"></div>'.
           
'<script>'.
           
'(function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0];'.
           
'if (d.getElementById(id)) return;js = d.createElement(s); '.
           
'js.id = id;js.src = "//connect.facebook.net/zh_HK/sdk.js#xfbml=1&version=v2.3";'.
           
'fjs.parentNode.insertBefore(js, fjs);}'.
           
'(document, \'script\', \'facebook-jssdk\'));'.
           
'</script>'.
           
'<div class="fb-video" data-allowfullscreen="1" '.
           
'data-href="'.$info['data-href'].'" data-width="640">'.
           
'</div>'
       
);
       
$this->assertEquals($embed['type'], 'javascript');
       
$this->assertEquals($embed['dimension']->width, 640);
       
$this->assertFalse($embed['dimension']->factor);
    }

    public function
testTranslateVideo4() {
       
$url = 'https://www.facebook.com/Usavich/videos/919568248066129/';
       
$url_parsed = parse_url($url);
       
$this->assertNotFalse($info = Facebook::preprocess($url_parsed));

       
// test returning embed code
       
$options = array('width'=>640);
       
$embed = Facebook::translate($info, $options);
       
$this->assertEquals($info['data-href'], '/Usavich/videos/919568248066129/?type=1');
       
$this->assertEquals($embed['html'],
           
'<div id="fb-root"></div>'.
           
'<script>'.
           
'(function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0];'.
           
'if (d.getElementById(id)) return;js = d.createElement(s); '.
           
'js.id = id;js.src = "//connect.facebook.net/zh_HK/sdk.js#xfbml=1&version=v2.3";'.
           
'fjs.parentNode.insertBefore(js, fjs);}'.
           
'(document, \'script\', \'facebook-jssdk\'));'.
           
'</script>'.
           
'<div class="fb-video" data-allowfullscreen="1" '.
           
'data-href="'.$info['data-href'].'" data-width="640">'.
           
'</div>'
       
);
       
$this->assertEquals($embed['type'], 'javascript');
       
$this->assertEquals($embed['dimension']->width, 640);
       
$this->assertFalse($embed['dimension']->factor);
    }



}