<?php
/**
 * HttpUtils' tests
 */

require_once 'application/HttpUtils.php';

/**
 * Unitary tests for page_url()
 */
class PageUrlTest extends PHPUnit_Framework_TestCase
{
    /**
     * If on the main page, remove "index.php" from the URL resource
     */
    public function testRemoveIndex()
    {
        $this->assertEquals(
            'http://host.tld/?p1=v1&p2=v2',
            page_url(
                array(
                    'HTTPS' => 'Off',
                    'SERVER_NAME' => 'host.tld',
                    'SERVER_PORT' => '80',
                    'SCRIPT_NAME' => '/index.php',
                    'QUERY_STRING' => 'p1=v1&p2=v2'
                )
            )
        );

        $this->assertEquals(
            'http://host.tld/admin/?action=edit_tag',
            page_url(
                array(
                    'HTTPS' => 'Off',
                    'SERVER_NAME' => 'host.tld',
                    'SERVER_PORT' => '80',
                    'SCRIPT_NAME' => '/admin/index.php',
                    'QUERY_STRING' => 'action=edit_tag'
                )
            )
        );
    }

    /**
     * The resource is != "index.php"
     */
    public function testOtherResource()
    {
        $this->assertEquals(
            'http://host.tld/page.php?p1=v1&p2=v2',
            page_url(
                array(
                    'HTTPS' => 'Off',
                    'SERVER_NAME' => 'host.tld',
                    'SERVER_PORT' => '80',
                    'SCRIPT_NAME' => '/page.php',
                    'QUERY_STRING' => 'p1=v1&p2=v2'
                )
            )
        );

        $this->assertEquals(
            'http://host.tld/admin/page.php?action=edit_tag',
            page_url(
                array(
                    'HTTPS' => 'Off',
                    'SERVER_NAME' => 'host.tld',
                    'SERVER_PORT' => '80',
                    'SCRIPT_NAME' => '/admin/page.php',
                    'QUERY_STRING' => 'action=edit_tag'
                )
            )
        );
    }
}