Welcome to mirror list, hosted at ThFree Co, Russian Federation.

SomeVisitsWithNonUnicodePageTitles.php « Fixtures « PHPUnit « tests - github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 199fc691232f149da8a266ad0a195d9b3c9ce31d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php
/**
 * Piwik - Open source web analytics
 *
 * @link    http://piwik.org
 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
 */
use Piwik\Date;

/**
 * Adds one website and some visits with non unicode page titles.
 */
class Test_Piwik_Fixture_SomeVisitsWithNonUnicodePageTitles extends Test_Piwik_BaseFixture
{
    public $idSite1 = 1;
    public $dateTime = '2010-01-03 11:22:33';

    public function setUp()
    {
        $this->setUpWebsites();
        $this->trackVisits();
    }

    public function tearDown()
    {
        // empty
    }

    /**
     * One site with custom search parameters,
     * One site using default search parameters,
     * One site with disabled site search
     */
    private function setUpWebsites()
    {
        Piwik_SitesManager_API::getInstance()->setGlobalSearchParameters($searchKeywordParameters = 'gkwd', $searchCategoryParameters = 'gcat');
        self::createWebsite(Date::factory($this->dateTime)->getDatetime(), 0, "Site 1 - Site search", $siteurl = false, $search = 1, $searchKwd = 'q,mykwd,p', $searchCat = 'cats');
    }

    private function trackVisits()
    {
        $idSite1 = $this->idSite1;
        $dateTime = $this->dateTime;

        self::assertTrue(function_exists('mb_check_encoding'), ' check mb_check_encoding ');
        self::assertTrue(function_exists('mb_convert_encoding'), ' check mb_convert_encoding ');

        // Visitor site1
        $visitor = self::getTracker($idSite1, $dateTime, $defaultInit = true);

        // Test w/ iso-8859-15
        $visitor->setForceVisitDateTime(Date::factory($dateTime)->addHour(0.3)->getDatetime());
        $visitor->setUrlReferrer('http://anothersite.com/whatever.html?whatever=Ato%FC');
        // Also testing that the value is encoded when passed as an array
        $visitor->setUrl('http://example.org/index.htm?random=param&mykwd[]=Search 2%FC&test&cats= Search Kategory &search_count=INCORRECT!');
        $visitor->setPageCharset('iso-8859-15');
        self::checkResponse($visitor->doTrackPageView('Site Search results'));
        $visitor->setPageCharset('');

        // Test w/ windows-1251
        $visitor = self::getTracker($idSite1, $dateTime, $defaultInit = true);
        $visitor->setForceVisitDateTime(Date::factory($dateTime)->addHour(0.3)->getDatetime());
        $visitor->setUrlReferrer('http://anothersite.com/whatever.html?txt=%EC%E5%F8%EA%EE%E2%FB%E5');
        $visitor->setUrl('http://example.org/page/index.htm?whatever=%EC%E5%F8%EA%EE%E2%FB%E5');
        $visitor->setPageCharset('windows-1251');
        self::checkResponse($visitor->doTrackPageView('Page title is always UTF-8'));

        $visitor->setForceVisitDateTime(Date::factory($dateTime)->addHour(0.4)->getDatetime());
        $nonUnicodeKeyword = '%EC%E5%F8%EA%EE%E2%FB%E5';
        $visitor->setUrl('http://example.org/page/index.htm?q=' . $nonUnicodeKeyword);
        $visitor->setPageCharset('windows-1251');
        self::checkResponse($visitor->doTrackPageView('Site Search'));


        // Test URL with non unicode Site Search keyword
        $visitor->setForceVisitDateTime(Date::factory($dateTime)->addHour(0.5)->getDatetime());
        //TESTS: on jenkins somehow the "<-was here" was cut off so removing this test case and simply append the wrong keyword
//		$visitor->setUrl('http://example.org/page/index.htm?q=non unicode keyword %EC%E5%F8%EAe%EE%E2%FBf%E5 <-was here');
        $visitor->setUrl('http://example.org/page/index.htm?q=non unicode keyword %EC%E5%F8%EA%EE%E2%FB%E5');
        $visitor->setPageCharset('utf-8');
        self::checkResponse($visitor->doTrackPageView('Site Search'));


        $visitor->setPageCharset('');
        $visitor->setForceVisitDateTime(Date::factory($dateTime)->addHour(0.5)->getDatetime());
        $visitor->setUrl('http://example.org/exit-page');
        self::checkResponse($visitor->doTrackPageView('Page title is always UTF-8'));

        // Test set invalid page char set
        $visitor = self::getTracker($idSite1, $dateTime, $defaultInit = true);
        $visitor->setForceVisitDateTime(Date::factory($dateTime)->addHour(1)->getDatetime());
        $visitor->setUrlReferrer('http://anothersite.com/whatever.html');
        $visitor->setUrl('http://example.org/index.htm?random=param&mykwd=a+keyword&test&cats= Search Kategory &search_count=INCORRECT!');
        $visitor->setPageCharset('GTF-42'); // galactic transformation format
        self::checkResponse($visitor->doTrackPageView('Site Search results'));
        $visitor->setPageCharset('');
    }
}