From cf2e36740a0bea50ef34b249af2e7f9a0431c8f8 Mon Sep 17 00:00:00 2001
From: Thomas Steur <thomas.steur@gmail.com>
Date: Mon, 15 Jun 2015 01:31:03 +0000
Subject: [PATCH] added some ui tests

---
 plugins/SitesManager/templates/index.html     |  2 +-
 .../SitesManager/tests/Fixtures/ManySites.php | 12 +++-
 tests/UI/specs/MeasurableManager_spec.js      | 56 +++++++++++++++++++
 3 files changed, 68 insertions(+), 2 deletions(-)
 create mode 100644 tests/UI/specs/MeasurableManager_spec.js

diff --git a/plugins/SitesManager/templates/index.html b/plugins/SitesManager/templates/index.html
index 86041b25e4..cfdca4a970 100644
--- a/plugins/SitesManager/templates/index.html
+++ b/plugins/SitesManager/templates/index.html
@@ -1,6 +1,6 @@
 <div ng-controller="SitesManagerController" class="SitesManager">
 
-    <div ng-include="'plugins/SitesManager/templates/sites-manager-header.html?cb=' + cacheBuster"></div>
+    <div ng-include="'plugins/SitesManager/templates/sites-manager-header.html?cb=' + cacheBuster" class="sites-manager-header"></div>
 
     <div ng-include="'plugins/SitesManager/templates/loading.html?cb=' + cacheBuster"></div>
 
diff --git a/plugins/SitesManager/tests/Fixtures/ManySites.php b/plugins/SitesManager/tests/Fixtures/ManySites.php
index fe3d2fd325..0a06e10672 100644
--- a/plugins/SitesManager/tests/Fixtures/ManySites.php
+++ b/plugins/SitesManager/tests/Fixtures/ManySites.php
@@ -8,6 +8,8 @@
 namespace Piwik\Plugins\SitesManager\tests\Fixtures;
 
 use Piwik\Plugin;
+use Piwik\Plugins\MobileAppMeasurable;
+use Piwik\Plugins\WebsiteMeasurable;
 use Piwik\Tests\Framework\Fixture;
 
 /**
@@ -27,7 +29,15 @@ class ManySites extends Fixture
                     $siteName = 'Site ' . $idSite;
                 }
 
-                self::createWebsite($this->dateTime, $ecommerce = 0, $siteName);
+                $type = null;
+                if ($idSite === 2) {
+                    $type = MobileAppMeasurable\Type::ID;
+                }
+
+                self::createWebsite($this->dateTime, $ecommerce = 0, $siteName,
+                                    $siteUrl = false,
+                                    $siteSearch = 1, $searchKeywordParameters = null,
+                                    $searchCategoryParameters = null, $timezone = null, $type);
             }
         }
     }
diff --git a/tests/UI/specs/MeasurableManager_spec.js b/tests/UI/specs/MeasurableManager_spec.js
new file mode 100644
index 0000000000..0be06a9ac8
--- /dev/null
+++ b/tests/UI/specs/MeasurableManager_spec.js
@@ -0,0 +1,56 @@
+/*!
+ * Piwik - free/libre analytics platform
+ *
+ * Site selector screenshot tests.
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+describe("MeasurableManager", function () {
+    this.timeout(0);
+    this.fixture = "Piwik\\Plugins\\SitesManager\\tests\\Fixtures\\ManySites";
+
+    var url = "?module=SitesManager&action=index&idSite=1&period=day&date=yesterday&showaddsite=false";
+
+    before(function () {
+        testEnvironment.pluginsToLoad = ['MobileAppMeasurable'];
+
+        testEnvironment.save();
+    });
+
+    function assertScreenshotEquals(screenshotName, done, test)
+    {
+        expect.screenshot(screenshotName).to.be.captureSelector('.sitesManagerList,.sitesButtonBar,.sites-manager-header', test, done);
+    }
+
+    it("should load correctly and should not use SitesManager wording as another type is enabled", function (done) {
+        assertScreenshotEquals("loaded", done, function (page) {
+            page.load(url);
+            page.evaluate(function () {
+                $('.ui-inline-help:contains(UTC time is)').hide();
+            });
+        });
+    });
+
+    it("should use measurable wording in menu", function (done) {
+        var selector = '.Menu-tabList *:contains(Administration):first';
+        expect.screenshot('measurable_menu_item').to.be.captureSelector(selector, function (page) {
+
+        }, done);
+    });
+
+    it("should show selection of available types when adding a type", function (done) {
+        assertScreenshotEquals("add_new_dialog", done, function (page) {
+            page.click('.SitesManager .addSite:first');
+        });
+    });
+
+    it("should load mobile app specific fields", function (done) {
+        assertScreenshotEquals("add_measurable_view", done, function (page) {
+            page.click('.ui-dialog-content button:contains(Mobile App)');
+            page.wait(250);
+        });
+    });
+
+});
\ No newline at end of file
-- 
GitLab