diff options
author | Stefan Giehl <stefan@matomo.org> | 2021-03-11 20:06:23 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-11 20:06:23 +0300 |
commit | 96fcda9f807e157409173a6135a895e358f52c95 (patch) | |
tree | 1159bb4b264315401e6354d3f69e117c086b1100 /plugins/Live | |
parent | c334b3d84e630af9c6f30a81aa5810057ae08bac (diff) |
Use https for urls in visitor details if host is defined with https in site (#17151)
* Use https for urls in visitor details if host is defined with https in site
* Use strpos/parse_url instead of preg_match
* apply review feedback
* also replace protocol in url metadata in page urls reports
* apply review feedback
Co-authored-by: diosmosis <diosmosis@users.noreply.github.com>
Diffstat (limited to 'plugins/Live')
-rw-r--r-- | plugins/Live/tests/System/ApiTest.php | 15 | ||||
-rw-r--r-- | plugins/Live/tests/System/expected/test_httpshost__Live.getLastVisitsDetails_day.xml | 568 |
2 files changed, 583 insertions, 0 deletions
diff --git a/plugins/Live/tests/System/ApiTest.php b/plugins/Live/tests/System/ApiTest.php index 1df94ce55b..9236600a75 100644 --- a/plugins/Live/tests/System/ApiTest.php +++ b/plugins/Live/tests/System/ApiTest.php @@ -8,6 +8,7 @@ namespace Piwik\Plugins\Live\tests\System; +use Piwik\Cache; use Piwik\Config; use Piwik\Plugins\API\API; use Piwik\Plugins\Live\SystemSettings; @@ -163,6 +164,20 @@ class ApiTest extends SystemTestCase ]); } + public function testApiWithHttpsHost() + { + \Piwik\Plugins\SitesManager\API::getInstance()->updateSite(1, 'Piwik test', ['http://piwik.net', 'https://example.org', 'http://example.org']); + Cache::getTransientCache()->flushAll(); + + $this->runApiTests('Live.getLastVisitsDetails', [ + 'idSite' => 1, + 'date' => self::$fixture->dateTime, + 'periods' => ['day'], + 'testSuffix' => 'httpshost', + ]); + } + + /** * @dataProvider getApiForTestingDisabledFeatures */ diff --git a/plugins/Live/tests/System/expected/test_httpshost__Live.getLastVisitsDetails_day.xml b/plugins/Live/tests/System/expected/test_httpshost__Live.getLastVisitsDetails_day.xml new file mode 100644 index 0000000000..c7aed20718 --- /dev/null +++ b/plugins/Live/tests/System/expected/test_httpshost__Live.getLastVisitsDetails_day.xml @@ -0,0 +1,568 @@ +<?xml version="1.0" encoding="utf-8" ?> +<result> + <row> + <idSite>1</idSite> + <idVisit>4</idVisit> + <visitIp>156.5.3.2</visitIp> + + <fingerprint>5041e282fc23fef1</fingerprint> + <actionDetails> + <row> + <type>action</type> + <url>https://example.org/my/dir/page0</url> + <pageTitle>incredible title 0</pageTitle> + <pageIdAction>9</pageIdAction> + + + <pageId>14</pageId> + <bandwidth /> + <pageviewPosition>1</pageviewPosition> + <title>incredible title 0</title> + <subtitle>https://example.org/my/dir/page0</subtitle> + <icon /> + <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + + <bandwidth_pretty>0 M</bandwidth_pretty> + </row> + </actionDetails> + <goalConversions>0</goalConversions> + <siteCurrency>USD</siteCurrency> + <siteCurrencySymbol>$</siteCurrencySymbol> + + + + + <siteName>Piwik test</siteName> + + + + + + + <userId /> + <visitorType>returning</visitorType> + <visitorTypeIcon>plugins/Live/images/returningVisitor.png</visitorTypeIcon> + <visitConverted>0</visitConverted> + <visitConvertedIcon /> + <visitCount>3</visitCount> + <visitEcommerceStatus>none</visitEcommerceStatus> + <visitEcommerceStatusIcon /> + <daysSinceFirstVisit>0</daysSinceFirstVisit> + <secondsSinceFirstVisit>720</secondsSinceFirstVisit> + <daysSinceLastEcommerceOrder>0</daysSinceLastEcommerceOrder> + <secondsSinceLastEcommerceOrder /> + <visitDuration>0</visitDuration> + <visitDurationPretty>0s</visitDurationPretty> + <searches>0</searches> + <actions>1</actions> + <interactions>1</interactions> + <referrerType>direct</referrerType> + <referrerTypeName>Direct Entry</referrerTypeName> + <referrerName /> + <referrerKeyword /> + <referrerKeywordPosition /> + <referrerUrl /> + <referrerSearchEngineUrl /> + <referrerSearchEngineIcon /> + <referrerSocialNetworkUrl /> + <referrerSocialNetworkIcon /> + <languageCode /> + <language>Unknown</language> + <deviceType>Unknown</deviceType> + <deviceTypeIcon>plugins/Morpheus/icons/dist/devices/unknown.png</deviceTypeIcon> + <deviceBrand>Unknown</deviceBrand> + <deviceModel>Unknown</deviceModel> + <operatingSystem>Unknown</operatingSystem> + <operatingSystemName>Unknown</operatingSystemName> + <operatingSystemIcon>plugins/Morpheus/icons/dist/os/UNK.png</operatingSystemIcon> + <operatingSystemCode>UNK</operatingSystemCode> + <operatingSystemVersion>UNK</operatingSystemVersion> + <browserFamily /> + <browserFamilyDescription>Unknown</browserFamilyDescription> + <browser>Unknown</browser> + <browserName>Unknown</browserName> + <browserIcon>plugins/Morpheus/icons/dist/browsers/UNK.png</browserIcon> + <browserCode>UNK</browserCode> + <browserVersion /> + <totalEcommerceRevenue>0</totalEcommerceRevenue> + <totalEcommerceConversions>0</totalEcommerceConversions> + <totalEcommerceItems>0</totalEcommerceItems> + <totalAbandonedCartsRevenue>0</totalAbandonedCartsRevenue> + <totalAbandonedCarts>0</totalAbandonedCarts> + <totalAbandonedCartsItems>0</totalAbandonedCartsItems> + <events>0</events> + <continent>Unknown</continent> + <continentCode>unk</continentCode> + <country>Unknown</country> + <countryCode>xx</countryCode> + <countryFlag>plugins/Morpheus/icons/dist/flags/xx.png</countryFlag> + <region /> + <regionCode /> + <city /> + <location>Unknown</location> + <latitude /> + <longitude /> + <visitLocalTime>12:34:06</visitLocalTime> + <visitLocalHour>12</visitLocalHour> + <daysSinceLastVisit>0</daysSinceLastVisit> + <secondsSinceLastVisit>360</secondsSinceLastVisit> + <resolution>1024x768</resolution> + <plugins>cookie, flash, java</plugins> + <pluginsIcons> + <row> + <pluginIcon>plugins/Morpheus/icons/dist/plugins/cookie.png</pluginIcon> + <pluginName>cookie</pluginName> + </row> + <row> + <pluginIcon>plugins/Morpheus/icons/dist/plugins/flash.png</pluginIcon> + <pluginName>flash</pluginName> + </row> + <row> + <pluginIcon>plugins/Morpheus/icons/dist/plugins/java.png</pluginIcon> + <pluginName>java</pluginName> + </row> + </pluginsIcons> + <customVariables> + </customVariables> + </row> + <row> + <idSite>1</idSite> + <idVisit>3</idVisit> + <visitIp>156.5.3.2</visitIp> + + <fingerprint>5041e282fc23fef1</fingerprint> + <actionDetails> + <row> + <type>action</type> + <url>https://example.org/my/dir/page-1</url> + <pageTitle>incredible title -1</pageTitle> + <pageIdAction>7</pageIdAction> + + + <pageId>13</pageId> + <bandwidth /> + <pageviewPosition>1</pageviewPosition> + <title>incredible title -1</title> + <subtitle>https://example.org/my/dir/page-1</subtitle> + <icon /> + <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + + <bandwidth_pretty>0 M</bandwidth_pretty> + </row> + </actionDetails> + <goalConversions>0</goalConversions> + <siteCurrency>USD</siteCurrency> + <siteCurrencySymbol>$</siteCurrencySymbol> + + + + + <siteName>Piwik test</siteName> + + + + + + + <userId /> + <visitorType>returning</visitorType> + <visitorTypeIcon>plugins/Live/images/returningVisitor.png</visitorTypeIcon> + <visitConverted>0</visitConverted> + <visitConvertedIcon /> + <visitCount>2</visitCount> + <visitEcommerceStatus>none</visitEcommerceStatus> + <visitEcommerceStatusIcon /> + <daysSinceFirstVisit>0</daysSinceFirstVisit> + <secondsSinceFirstVisit>360</secondsSinceFirstVisit> + <daysSinceLastEcommerceOrder>0</daysSinceLastEcommerceOrder> + <secondsSinceLastEcommerceOrder /> + <visitDuration>0</visitDuration> + <visitDurationPretty>0s</visitDurationPretty> + <searches>0</searches> + <actions>1</actions> + <interactions>1</interactions> + <referrerType>direct</referrerType> + <referrerTypeName>Direct Entry</referrerTypeName> + <referrerName /> + <referrerKeyword /> + <referrerKeywordPosition /> + <referrerUrl /> + <referrerSearchEngineUrl /> + <referrerSearchEngineIcon /> + <referrerSocialNetworkUrl /> + <referrerSocialNetworkIcon /> + <languageCode /> + <language>Unknown</language> + <deviceType>Unknown</deviceType> + <deviceTypeIcon>plugins/Morpheus/icons/dist/devices/unknown.png</deviceTypeIcon> + <deviceBrand>Unknown</deviceBrand> + <deviceModel>Unknown</deviceModel> + <operatingSystem>Unknown</operatingSystem> + <operatingSystemName>Unknown</operatingSystemName> + <operatingSystemIcon>plugins/Morpheus/icons/dist/os/UNK.png</operatingSystemIcon> + <operatingSystemCode>UNK</operatingSystemCode> + <operatingSystemVersion>UNK</operatingSystemVersion> + <browserFamily /> + <browserFamilyDescription>Unknown</browserFamilyDescription> + <browser>Unknown</browser> + <browserName>Unknown</browserName> + <browserIcon>plugins/Morpheus/icons/dist/browsers/UNK.png</browserIcon> + <browserCode>UNK</browserCode> + <browserVersion /> + <totalEcommerceRevenue>0</totalEcommerceRevenue> + <totalEcommerceConversions>0</totalEcommerceConversions> + <totalEcommerceItems>0</totalEcommerceItems> + <totalAbandonedCartsRevenue>0</totalAbandonedCartsRevenue> + <totalAbandonedCarts>0</totalAbandonedCarts> + <totalAbandonedCartsItems>0</totalAbandonedCartsItems> + <events>0</events> + <continent>Unknown</continent> + <continentCode>unk</continentCode> + <country>Unknown</country> + <countryCode>xx</countryCode> + <countryFlag>plugins/Morpheus/icons/dist/flags/xx.png</countryFlag> + <region /> + <regionCode /> + <city /> + <location>Unknown</location> + <latitude /> + <longitude /> + <visitLocalTime>12:34:06</visitLocalTime> + <visitLocalHour>12</visitLocalHour> + <daysSinceLastVisit>0</daysSinceLastVisit> + <secondsSinceLastVisit>360</secondsSinceLastVisit> + <resolution>1024x768</resolution> + <plugins>cookie, flash, java</plugins> + <pluginsIcons> + <row> + <pluginIcon>plugins/Morpheus/icons/dist/plugins/cookie.png</pluginIcon> + <pluginName>cookie</pluginName> + </row> + <row> + <pluginIcon>plugins/Morpheus/icons/dist/plugins/flash.png</pluginIcon> + <pluginName>flash</pluginName> + </row> + <row> + <pluginIcon>plugins/Morpheus/icons/dist/plugins/java.png</pluginIcon> + <pluginName>java</pluginName> + </row> + </pluginsIcons> + <customVariables> + </customVariables> + </row> + <row> + <idSite>1</idSite> + <idVisit>2</idVisit> + <visitIp>156.5.3.2</visitIp> + + <fingerprint>e16cf2bbaeea2c88</fingerprint> + <actionDetails> + <row> + <type>action</type> + <url>https://example.org/my/dir/page-2</url> + <pageTitle>incredible title -2</pageTitle> + <pageIdAction>4</pageIdAction> + + + <pageId>2</pageId> + <bandwidth /> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> + <pageviewPosition>1</pageviewPosition> + <title>incredible title -2</title> + <subtitle>https://example.org/my/dir/page-2</subtitle> + <icon /> + <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + + <bandwidth_pretty>0 M</bandwidth_pretty> + </row> + <row> + <type>action</type> + <url>https://example.org/my/dir/page-2</url> + <pageTitle>incredible title 1</pageTitle> + <pageIdAction>4</pageIdAction> + + + <pageId>3</pageId> + <bandwidth /> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> + <pageviewPosition>2</pageviewPosition> + <title>incredible title 1</title> + <subtitle>https://example.org/my/dir/page-2</subtitle> + <icon /> + <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + + <bandwidth_pretty>0 M</bandwidth_pretty> + </row> + <row> + <type>action</type> + <url>https://example.org/my/dir/page-2</url> + <pageTitle>incredible title 1</pageTitle> + <pageIdAction>4</pageIdAction> + + + <pageId>4</pageId> + <bandwidth /> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> + <pageviewPosition>3</pageviewPosition> + <title>incredible title 1</title> + <subtitle>https://example.org/my/dir/page-2</subtitle> + <icon /> + <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + + <bandwidth_pretty>0 M</bandwidth_pretty> + </row> + <row> + <type>action</type> + <url>https://example.org/my/dir/page-2</url> + <pageTitle>incredible title 1</pageTitle> + <pageIdAction>4</pageIdAction> + + + <pageId>5</pageId> + <bandwidth /> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> + <pageviewPosition>4</pageviewPosition> + <title>incredible title 1</title> + <subtitle>https://example.org/my/dir/page-2</subtitle> + <icon /> + <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + + <bandwidth_pretty>0 M</bandwidth_pretty> + </row> + <row> + <type>action</type> + <url>https://example.org/my/dir/page-2</url> + <pageTitle>incredible title 1</pageTitle> + <pageIdAction>4</pageIdAction> + + + <pageId>6</pageId> + <bandwidth /> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> + <pageviewPosition>5</pageviewPosition> + <title>incredible title 1</title> + <subtitle>https://example.org/my/dir/page-2</subtitle> + <icon /> + <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + + <bandwidth_pretty>0 M</bandwidth_pretty> + </row> + <row> + <type>action</type> + <url>https://example.org/my/dir/page-2</url> + <pageTitle>incredible title 1</pageTitle> + <pageIdAction>4</pageIdAction> + + + <pageId>7</pageId> + <bandwidth /> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> + <pageviewPosition>6</pageviewPosition> + <title>incredible title 1</title> + <subtitle>https://example.org/my/dir/page-2</subtitle> + <icon /> + <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + + <bandwidth_pretty>0 M</bandwidth_pretty> + </row> + <row> + <type>action</type> + <url>https://example.org/my/dir/page-2</url> + <pageTitle>incredible title 1</pageTitle> + <pageIdAction>4</pageIdAction> + + + <pageId>8</pageId> + <bandwidth /> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> + <pageviewPosition>7</pageviewPosition> + <title>incredible title 1</title> + <subtitle>https://example.org/my/dir/page-2</subtitle> + <icon /> + <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + + <bandwidth_pretty>0 M</bandwidth_pretty> + </row> + <row> + <type>action</type> + <url>https://example.org/my/dir/page-2</url> + <pageTitle>incredible title 1</pageTitle> + <pageIdAction>4</pageIdAction> + + + <pageId>9</pageId> + <bandwidth /> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> + <pageviewPosition>8</pageviewPosition> + <title>incredible title 1</title> + <subtitle>https://example.org/my/dir/page-2</subtitle> + <icon /> + <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + + <bandwidth_pretty>0 M</bandwidth_pretty> + </row> + <row> + <type>action</type> + <url>https://example.org/my/dir/page-2</url> + <pageTitle>incredible title 1</pageTitle> + <pageIdAction>4</pageIdAction> + + + <pageId>10</pageId> + <bandwidth /> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> + <pageviewPosition>9</pageviewPosition> + <title>incredible title 1</title> + <subtitle>https://example.org/my/dir/page-2</subtitle> + <icon /> + <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + + <bandwidth_pretty>0 M</bandwidth_pretty> + </row> + <row> + <type>action</type> + <url>https://example.org/my/dir/page-2</url> + <pageTitle>incredible title 1</pageTitle> + <pageIdAction>4</pageIdAction> + + + <pageId>11</pageId> + <bandwidth /> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> + <pageviewPosition>10</pageviewPosition> + <title>incredible title 1</title> + <subtitle>https://example.org/my/dir/page-2</subtitle> + <icon /> + <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + + <bandwidth_pretty>0 M</bandwidth_pretty> + </row> + <row> + <type>action</type> + <url>https://example.org/my/dir/page-2</url> + <pageTitle>incredible title 1</pageTitle> + <pageIdAction>4</pageIdAction> + + + <pageId>12</pageId> + <bandwidth /> + <pageviewPosition>11</pageviewPosition> + <title>incredible title 1</title> + <subtitle>https://example.org/my/dir/page-2</subtitle> + <icon /> + <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + + <bandwidth_pretty>0 M</bandwidth_pretty> + </row> + </actionDetails> + <goalConversions>0</goalConversions> + <siteCurrency>USD</siteCurrency> + <siteCurrencySymbol>$</siteCurrencySymbol> + + + + + <siteName>Piwik test</siteName> + + + + + + + <userId /> + <visitorType>new</visitorType> + <visitorTypeIcon /> + <visitConverted>0</visitConverted> + <visitConvertedIcon /> + <visitCount>1</visitCount> + <visitEcommerceStatus>none</visitEcommerceStatus> + <visitEcommerceStatusIcon /> + <daysSinceFirstVisit>0</daysSinceFirstVisit> + <secondsSinceFirstVisit>0</secondsSinceFirstVisit> + <daysSinceLastEcommerceOrder>0</daysSinceLastEcommerceOrder> + <secondsSinceLastEcommerceOrder /> + <visitDuration>1</visitDuration> + <visitDurationPretty>1s</visitDurationPretty> + <searches>0</searches> + <actions>11</actions> + <interactions>11</interactions> + <referrerType>direct</referrerType> + <referrerTypeName>Direct Entry</referrerTypeName> + <referrerName /> + <referrerKeyword /> + <referrerKeywordPosition /> + <referrerUrl /> + <referrerSearchEngineUrl /> + <referrerSearchEngineIcon /> + <referrerSocialNetworkUrl /> + <referrerSocialNetworkIcon /> + <languageCode>fr</languageCode> + <language>French</language> + <deviceType>Desktop</deviceType> + <deviceTypeIcon>plugins/Morpheus/icons/dist/devices/desktop.png</deviceTypeIcon> + <deviceBrand>Unknown</deviceBrand> + <deviceModel>Generic Desktop</deviceModel> + <operatingSystem>Windows XP</operatingSystem> + <operatingSystemName>Windows</operatingSystemName> + <operatingSystemIcon>plugins/Morpheus/icons/dist/os/WIN.png</operatingSystemIcon> + <operatingSystemCode>WIN</operatingSystemCode> + <operatingSystemVersion>XP</operatingSystemVersion> + <browserFamily>Gecko</browserFamily> + <browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription> + <browser>Firefox 3.6</browser> + <browserName>Firefox</browserName> + <browserIcon>plugins/Morpheus/icons/dist/browsers/FF.png</browserIcon> + <browserCode>FF</browserCode> + <browserVersion>3.6</browserVersion> + <totalEcommerceRevenue>0</totalEcommerceRevenue> + <totalEcommerceConversions>0</totalEcommerceConversions> + <totalEcommerceItems>0</totalEcommerceItems> + <totalAbandonedCartsRevenue>0</totalAbandonedCartsRevenue> + <totalAbandonedCarts>0</totalAbandonedCarts> + <totalAbandonedCartsItems>0</totalAbandonedCartsItems> + <events>0</events> + <continent>Europe</continent> + <continentCode>eur</continentCode> + <country>France</country> + <countryCode>fr</countryCode> + <countryFlag>plugins/Morpheus/icons/dist/flags/fr.png</countryFlag> + <region /> + <regionCode /> + <city /> + <location>France</location> + <latitude /> + <longitude /> + <visitLocalTime>12:34:06</visitLocalTime> + <visitLocalHour>12</visitLocalHour> + <daysSinceLastVisit>0</daysSinceLastVisit> + <secondsSinceLastVisit>0</secondsSinceLastVisit> + <resolution>1024x768</resolution> + <plugins>cookie, flash, java</plugins> + <pluginsIcons> + <row> + <pluginIcon>plugins/Morpheus/icons/dist/plugins/cookie.png</pluginIcon> + <pluginName>cookie</pluginName> + </row> + <row> + <pluginIcon>plugins/Morpheus/icons/dist/plugins/flash.png</pluginIcon> + <pluginName>flash</pluginName> + </row> + <row> + <pluginIcon>plugins/Morpheus/icons/dist/plugins/java.png</pluginIcon> + <pluginName>java</pluginName> + </row> + </pluginsIcons> + <customVariables> + </customVariables> + </row> +</result>
\ No newline at end of file |