Skip to content
Extraits de code Groupes Projets
WidgetsListTest.php 5,53 ko
Newer Older
  • Learn to ignore specific revisions
  •  * Piwik - free/libre analytics platform
    
     *
     * @link http://piwik.org
     * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
     */
    
    
    namespace Piwik\Tests\Integration;
    
    
    use Piwik\Tests\Framework\Mock\FakeAccess;
    use Piwik\Translate;
    
    use Piwik\Tests\Framework\Fixture;
    use Piwik\Tests\Framework\TestCase\IntegrationTestCase;
    
    class Core_WidgetsListTest extends IntegrationTestCase
    
    {
        public function testGet()
        {
            // setup the access layer
            $pseudoMockAccess = new FakeAccess;
            FakeAccess::$superUser = true;
    
            Access::setSingletonInstance($pseudoMockAccess);
    
            Fixture::createWebsite('2009-01-04 00:11:42');
    
            WidgetsList::_reset();
            $widgets = WidgetsList::get();
            WidgetsList::_reset();
    
    
            // check if each category has the right number of widgets
            $numberOfWidgets = array(
                'VisitsSummary_VisitsSummary'  => 6,
    
                'Live!'                        => 4,
    
    sgiehl's avatar
    sgiehl a validé
                'UserSettings_VisitorSettings' => 5,
    
    Patryk Andrzejewski's avatar
    Patryk Andrzejewski a validé
                'General_Actions'              => 10,
    
    mattab's avatar
    mattab a validé
                'Events_Events'                => 3,
    
                'Actions_SubmenuSitesearch'    => 5,
    
                'Referrers_Referrers'            => 7,
    
    Fabian Becker's avatar
    Fabian Becker a validé
                'SEO'                          => 2,
    
                'DevicesDetection_DevicesDetection' => 8,
    
    diosmosis's avatar
    diosmosis a validé
                'Insights_WidgetCategory' => 2
    
    mattab's avatar
    mattab a validé
    
            // number of main categories
            $this->assertEquals(count($numberOfWidgets), count($widgets));
    
    
            foreach ($numberOfWidgets as $category => $widgetCount) {
    
    Fabian Becker's avatar
    Fabian Becker a validé
                $this->assertEquals($widgetCount, count($widgets[$category]), sprintf("Widget: %s", $category));
    
            }
        }
    
        public function testGetWithGoals()
        {
            // setup the access layer
            $pseudoMockAccess = new FakeAccess;
            FakeAccess::$superUser = true;
    
            Access::setSingletonInstance($pseudoMockAccess);
    
            Fixture::createWebsite('2009-01-04 00:11:42');
    
            API::getInstance()->addGoal(1, 'Goal 1 - Thank you', 'title', 'Thank you', 'contains', $caseSensitive = false, $revenue = 10, $allowMultipleConversions = 1);
    
            WidgetsList::_reset();
            $widgets = WidgetsList::get();
            WidgetsList::_reset();
    
    mattab's avatar
    mattab a validé
            // number of main categories
    
    mattab's avatar
    mattab a validé
            $this->assertEquals(13, count($widgets));
    
            // check that the goal widget was added
    
            $numberOfWidgets = array(
    
            foreach ($numberOfWidgets as $category => $widgetCount) {
    
                $this->assertEquals($widgetCount, count($widgets[$category]));
    
            }
        }
    
        public function testGetWithGoalsAndEcommerce()
        {
            // setup the access layer
            $pseudoMockAccess = new FakeAccess;
            FakeAccess::$superUser = true;
    
            Access::setSingletonInstance($pseudoMockAccess);
    
            Fixture::createWebsite('2009-01-04 00:11:42', true);
    
            API::getInstance()->addGoal(1, 'Goal 1 - Thank you', 'title', 'Thank you', 'contains', $caseSensitive = false, $revenue = 10, $allowMultipleConversions = 1);
    
            WidgetsList::_reset();
            $widgets = WidgetsList::get();
            WidgetsList::_reset();
    
    mattab's avatar
    mattab a validé
            // number of main categories
    
    mattab's avatar
    mattab a validé
            $this->assertEquals(14, count($widgets));
    
    
            // check if each category has the right number of widgets
            $numberOfWidgets = array(
    
                'Goals_Goals'     => 2,
                'Goals_Ecommerce' => 5,
    
            foreach ($numberOfWidgets as $category => $widgetCount) {
    
                $this->assertEquals($widgetCount, count($widgets[$category]));
            }
        }
    
    
    sgiehl's avatar
    sgiehl a validé
        public function testRemove()
        {
            // setup the access layer
            $pseudoMockAccess = new FakeAccess;
            FakeAccess::$superUser = true;
            Access::setSingletonInstance($pseudoMockAccess);
    
    
            Fixture::createWebsite('2009-01-04 00:11:42', true);
    
    sgiehl's avatar
    sgiehl a validé
            API::getInstance()->addGoal(1, 'Goal 1 - Thank you', 'title', 'Thank you', 'contains', $caseSensitive = false, $revenue = 10, $allowMultipleConversions = 1);
    
            $_GET['idSite'] = 1;
    
            WidgetsList::_reset();
            $widgets = WidgetsList::get();
    
    
    mattab's avatar
    mattab a validé
            $this->assertCount(14, $widgets);
    
    sgiehl's avatar
    sgiehl a validé
            WidgetsList::remove('SEO', 'NoTeXiStInG');
    
            $widgets = WidgetsList::get();
    
    mattab's avatar
    mattab a validé
            $this->assertCount(14, $widgets);
    
    sgiehl's avatar
    sgiehl a validé
    
            $this->assertArrayHasKey('SEO', $widgets);
            $this->assertCount(2, $widgets['SEO']);
    
            WidgetsList::remove('SEO', 'SEO_SeoRankings');
            $widgets = WidgetsList::get();
    
            $this->assertCount(1, $widgets['SEO']);
    
    mattab's avatar
    mattab a validé
    
    
    sgiehl's avatar
    sgiehl a validé
            WidgetsList::remove('SEO');
            $widgets = WidgetsList::get();
    
            $this->assertArrayNotHasKey('SEO', $widgets);
    
            WidgetsList::_reset();
        }
    
        public function testIsDefined()
        {
            // setup the access layer
            $pseudoMockAccess = new FakeAccess;
            FakeAccess::$superUser = true;
            Access::setSingletonInstance($pseudoMockAccess);
    
    
            Translate::loadEnglishTranslation();
    
    sgiehl's avatar
    sgiehl a validé
    
    
            Fixture::createWebsite('2009-01-04 00:11:42', true);
    
    sgiehl's avatar
    sgiehl a validé
    
            $_GET['idSite'] = 1;
    
            WidgetsList::_reset();
            WidgetsList::add('Actions', 'Pages', 'Actions', 'getPageUrls');
    
            $this->assertTrue(WidgetsList::isDefined('Actions', 'getPageUrls'));
            $this->assertFalse(WidgetsList::isDefined('Actions', 'inValiD'));
        }