<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1791792551">
  <project timestamp="1791792551">
    <file name="/workspace/src/extensions/PageViewInfoGA/src/Constants.php">
      <class name="MediaWiki\Extension\PageViewInfoGA\Constants" namespace="global">
        <metrics complexity="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="39" ncloc="19" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/PageViewInfoGA/src/CredentialsFileTokenProvider.php">
      <class name="MediaWiki\Extension\PageViewInfoGA\CredentialsFileTokenProvider" namespace="global">
        <metrics complexity="18" methods="4" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="55" coveredstatements="52" elements="59" coveredelements="55"/>
      </class>
      <line num="46" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="53" type="stmt" count="7"/>
      <line num="54" type="stmt" count="7"/>
      <line num="55" type="stmt" count="7"/>
      <line num="56" type="stmt" count="7"/>
      <line num="57" type="stmt" count="7"/>
      <line num="63" type="method" name="getAccessToken" visibility="public" complexity="4" crap="4" count="7"/>
      <line num="64" type="stmt" count="7"/>
      <line num="65" type="stmt" count="7"/>
      <line num="66" type="stmt" count="7"/>
      <line num="68" type="stmt" count="3"/>
      <line num="69" type="stmt" count="3"/>
      <line num="70" type="stmt" count="3"/>
      <line num="71" type="stmt" count="3"/>
      <line num="72" type="stmt" count="3"/>
      <line num="75" type="stmt" count="4"/>
      <line num="78" type="stmt" count="4"/>
      <line num="79" type="stmt" count="4"/>
      <line num="80" type="stmt" count="4"/>
      <line num="81" type="stmt" count="4"/>
      <line num="82" type="stmt" count="4"/>
      <line num="83" type="stmt" count="4"/>
      <line num="85" type="stmt" count="4"/>
      <line num="86" type="stmt" count="4"/>
      <line num="87" type="stmt" count="4"/>
      <line num="88" type="stmt" count="4"/>
      <line num="94" type="method" name="loadCredentials" visibility="private" complexity="8" crap="8" count="7"/>
      <line num="95" type="stmt" count="7"/>
      <line num="96" type="stmt" count="7"/>
      <line num="97" type="stmt" count="1"/>
      <line num="99" type="stmt" count="6"/>
      <line num="100" type="stmt" count="6"/>
      <line num="101" type="stmt" count="1"/>
      <line num="103" type="stmt" count="5"/>
      <line num="104" type="stmt" count="5"/>
      <line num="107" type="stmt" count="5"/>
      <line num="108" type="stmt" count="5"/>
      <line num="110" type="stmt" count="3"/>
      <line num="113" type="stmt" count="5"/>
      <line num="114" type="stmt" count="1"/>
      <line num="115" type="stmt" count="1"/>
      <line num="117" type="stmt" count="4"/>
      <line num="125" type="method" name="fetchToken" visibility="private" complexity="5" crap="5.16" count="4"/>
      <line num="127" type="stmt" count="4"/>
      <line num="128" type="stmt" count="1"/>
      <line num="132" type="stmt" count="1"/>
      <line num="133" type="stmt" count="1"/>
      <line num="134" type="stmt" count="1"/>
      <line num="135" type="stmt" count="1"/>
      <line num="137" type="stmt" count="4"/>
      <line num="138" type="stmt" count="0"/>
      <line num="139" type="stmt" count="0"/>
      <line num="143" type="stmt" count="4"/>
      <line num="144" type="stmt" count="3"/>
      <line num="145" type="stmt" count="1"/>
      <line num="146" type="stmt" count="4"/>
      <line num="147" type="stmt" count="4"/>
      <line num="149" type="stmt" count="0"/>
      <line num="151" type="stmt" count="4"/>
      <metrics loc="154" ncloc="117" classes="1" methods="4" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="55" coveredstatements="52" elements="59" coveredelements="55"/>
    </file>
    <file name="/workspace/src/extensions/PageViewInfoGA/src/GoogleAnalyticsPageViewService.php">
      <class name="MediaWiki\Extension\PageViewInfoGA\GoogleAnalyticsPageViewService" namespace="global">
        <metrics complexity="53" methods="19" coveredmethods="11" conditionals="0" coveredconditionals="0" statements="190" coveredstatements="178" elements="209" coveredelements="189"/>
      </class>
      <line num="67" type="method" name="__construct" visibility="public" complexity="2" crap="2" count="11"/>
      <line num="75" type="stmt" count="11"/>
      <line num="76" type="stmt" count="11"/>
      <line num="77" type="stmt" count="1"/>
      <line num="79" type="stmt" count="10"/>
      <line num="80" type="stmt" count="10"/>
      <line num="81" type="stmt" count="10"/>
      <line num="82" type="stmt" count="10"/>
      <line num="86" type="method" name="setLogger" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="87" type="stmt" count="0"/>
      <line num="91" type="method" name="supports" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="92" type="stmt" count="0"/>
      <line num="93" type="stmt" count="0"/>
      <line num="102" type="method" name="getPageData" visibility="public" complexity="4" crap="4.03" count="7"/>
      <line num="103" type="stmt" count="7"/>
      <line num="104" type="stmt" count="7"/>
      <line num="105" type="stmt" count="0"/>
      <line num="107" type="stmt" count="7"/>
      <line num="108" type="stmt" count="0"/>
      <line num="111" type="stmt" count="7"/>
      <line num="112" type="stmt" count="7"/>
      <line num="113" type="stmt" count="7"/>
      <line num="114" type="stmt" count="7"/>
      <line num="115" type="stmt" count="7"/>
      <line num="116" type="stmt" count="7"/>
      <line num="117" type="stmt" count="7"/>
      <line num="118" type="stmt" count="7"/>
      <line num="120" type="stmt" count="7"/>
      <line num="121" type="stmt" count="7"/>
      <line num="122" type="stmt" count="7"/>
      <line num="123" type="stmt" count="7"/>
      <line num="132" type="method" name="getChunkData" visibility="private" complexity="8" crap="8" count="7"/>
      <line num="133" type="stmt" count="7"/>
      <line num="134" type="stmt" count="7"/>
      <line num="136" type="stmt" count="7"/>
      <line num="137" type="stmt" count="2"/>
      <line num="138" type="stmt" count="2"/>
      <line num="139" type="stmt" count="2"/>
      <line num="140" type="stmt" count="2"/>
      <line num="141" type="stmt" count="2"/>
      <line num="143" type="stmt" count="5"/>
      <line num="144" type="stmt" count="5"/>
      <line num="145" type="stmt" count="5"/>
      <line num="146" type="stmt" count="5"/>
      <line num="147" type="stmt" count="5"/>
      <line num="148" type="stmt" count="5"/>
      <line num="149" type="stmt" count="5"/>
      <line num="150" type="stmt" count="5"/>
      <line num="151" type="stmt" count="5"/>
      <line num="152" type="stmt" count="5"/>
      <line num="153" type="stmt" count="5"/>
      <line num="154" type="stmt" count="5"/>
      <line num="155" type="stmt" count="5"/>
      <line num="156" type="stmt" count="5"/>
      <line num="160" type="stmt" count="7"/>
      <line num="161" type="stmt" count="7"/>
      <line num="162" type="stmt" count="6"/>
      <line num="163" type="stmt" count="6"/>
      <line num="164" type="stmt" count="6"/>
      <line num="165" type="stmt" count="6"/>
      <line num="166" type="stmt" count="6"/>
      <line num="167" type="stmt" count="6"/>
      <line num="168" type="stmt" count="6"/>
      <line num="169" type="stmt" count="6"/>
      <line num="170" type="stmt" count="3"/>
      <line num="171" type="stmt" count="3"/>
      <line num="172" type="stmt" count="3"/>
      <line num="174" type="stmt" count="4"/>
      <line num="177" type="stmt" count="4"/>
      <line num="178" type="stmt" count="4"/>
      <line num="180" type="stmt" count="4"/>
      <line num="181" type="stmt" count="4"/>
      <line num="182" type="stmt" count="4"/>
      <line num="187" type="stmt" count="5"/>
      <line num="188" type="stmt" count="5"/>
      <line num="189" type="stmt" count="5"/>
      <line num="190" type="stmt" count="5"/>
      <line num="194" type="method" name="getSiteData" visibility="public" complexity="5" crap="5.03" count="1"/>
      <line num="195" type="stmt" count="1"/>
      <line num="196" type="stmt" count="1"/>
      <line num="197" type="stmt" count="0"/>
      <line num="200" type="stmt" count="1"/>
      <line num="201" type="stmt" count="1"/>
      <line num="202" type="stmt" count="1"/>
      <line num="203" type="stmt" count="1"/>
      <line num="204" type="stmt" count="1"/>
      <line num="205" type="stmt" count="1"/>
      <line num="206" type="stmt" count="1"/>
      <line num="207" type="stmt" count="0"/>
      <line num="210" type="stmt" count="1"/>
      <line num="211" type="stmt" count="1"/>
      <line num="212" type="stmt" count="1"/>
      <line num="213" type="stmt" count="1"/>
      <line num="214" type="stmt" count="1"/>
      <line num="217" type="stmt" count="1"/>
      <line num="218" type="stmt" count="1"/>
      <line num="222" type="method" name="getTopPages" visibility="public" complexity="6" crap="6" count="2"/>
      <line num="223" type="stmt" count="2"/>
      <line num="224" type="stmt" count="2"/>
      <line num="226" type="stmt" count="2"/>
      <line num="227" type="stmt" count="2"/>
      <line num="228" type="stmt" count="2"/>
      <line num="229" type="stmt" count="2"/>
      <line num="230" type="stmt" count="2"/>
      <line num="231" type="stmt" count="2"/>
      <line num="232" type="stmt" count="2"/>
      <line num="233" type="stmt" count="0"/>
      <line num="236" type="stmt" count="2"/>
      <line num="239" type="stmt" count="2"/>
      <line num="240" type="stmt" count="2"/>
      <line num="241" type="stmt" count="2"/>
      <line num="242" type="stmt" count="2"/>
      <line num="244" type="stmt" count="1"/>
      <line num="246" type="stmt" count="2"/>
      <line num="247" type="stmt" count="2"/>
      <line num="249" type="stmt" count="2"/>
      <line num="250" type="stmt" count="1"/>
      <line num="251" type="stmt" count="1"/>
      <line num="252" type="stmt" count="2"/>
      <line num="253" type="stmt" count="2"/>
      <line num="256" type="stmt" count="2"/>
      <line num="257" type="stmt" count="2"/>
      <line num="258" type="stmt" count="2"/>
      <line num="262" type="method" name="getCacheExpiry" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="264" type="stmt" count="0"/>
      <line num="265" type="stmt" count="0"/>
      <line num="274" type="method" name="runReport" visibility="private" complexity="5" crap="5" count="9"/>
      <line num="275" type="stmt" count="9"/>
      <line num="276" type="stmt" count="9"/>
      <line num="277" type="stmt" count="1"/>
      <line num="278" type="stmt" count="1"/>
      <line num="279" type="stmt" count="1"/>
      <line num="280" type="stmt" count="1"/>
      <line num="283" type="stmt" count="8"/>
      <line num="284" type="stmt" count="8"/>
      <line num="285" type="stmt" count="8"/>
      <line num="286" type="stmt" count="8"/>
      <line num="287" type="stmt" count="8"/>
      <line num="288" type="stmt" count="8"/>
      <line num="289" type="stmt" count="8"/>
      <line num="290" type="stmt" count="8"/>
      <line num="291" type="stmt" count="8"/>
      <line num="292" type="stmt" count="8"/>
      <line num="293" type="stmt" count="8"/>
      <line num="294" type="stmt" count="2"/>
      <line num="295" type="stmt" count="2"/>
      <line num="296" type="stmt" count="2"/>
      <line num="297" type="stmt" count="2"/>
      <line num="298" type="stmt" count="2"/>
      <line num="299" type="stmt" count="2"/>
      <line num="300" type="stmt" count="2"/>
      <line num="303" type="stmt" count="7"/>
      <line num="304" type="stmt" count="7"/>
      <line num="305" type="stmt" count="7"/>
      <line num="306" type="stmt" count="7"/>
      <line num="307" type="stmt" count="7"/>
      <line num="309" type="stmt" count="7"/>
      <line num="317" type="method" name="describe" visibility="private" complexity="2" crap="2" count="2"/>
      <line num="318" type="stmt" count="2"/>
      <line num="319" type="stmt" count="2"/>
      <line num="320" type="stmt" count="2"/>
      <line num="321" type="stmt" count="2"/>
      <line num="322" type="stmt" count="2"/>
      <line num="323" type="stmt" count="2"/>
      <line num="324" type="stmt" count="2"/>
      <line num="332" type="method" name="getGAMetric" visibility="private" complexity="3" crap="3.07" count="10"/>
      <line num="333" type="stmt" count="10"/>
      <line num="334" type="stmt" count="9"/>
      <line num="335" type="stmt" count="1"/>
      <line num="336" type="stmt" count="1"/>
      <line num="338" type="stmt" count="0"/>
      <line num="341" type="method" name="getTitleDimension" visibility="private" complexity="2" crap="2" count="9"/>
      <line num="342" type="stmt" count="9"/>
      <line num="343" type="stmt" count="3"/>
      <line num="344" type="stmt" count="9"/>
      <line num="351" type="method" name="getDbKeysByPageIdOfTitles" visibility="private" complexity="3" crap="3" count="2"/>
      <line num="352" type="stmt" count="2"/>
      <line num="353" type="stmt" count="2"/>
      <line num="354" type="stmt" count="2"/>
      <line num="356" type="stmt" count="2"/>
      <line num="357" type="stmt" count="2"/>
      <line num="358" type="stmt" count="2"/>
      <line num="359" type="stmt" count="2"/>
      <line num="360" type="stmt" count="2"/>
      <line num="362" type="stmt" count="2"/>
      <line num="369" type="method" name="getDbKeysByPageId" visibility="private" complexity="2" crap="2.06" count="1"/>
      <line num="370" type="stmt" count="1"/>
      <line num="371" type="stmt" count="1"/>
      <line num="372" type="stmt" count="0"/>
      <line num="374" type="stmt" count="1"/>
      <line num="381" type="method" name="fetchDbKeysByPageId" visibility="private" complexity="2" crap="2" count="3"/>
      <line num="382" type="stmt" count="3"/>
      <line num="383" type="stmt" count="3"/>
      <line num="384" type="stmt" count="2"/>
      <line num="386" type="stmt" count="3"/>
      <line num="398" type="method" name="getPageTitleRegex" visibility="private" complexity="1" crap="1" count="5"/>
      <line num="399" type="stmt" count="5"/>
      <line num="400" type="stmt" count="5"/>
      <line num="407" type="method" name="stripSiteName" visibility="private" complexity="1" crap="1" count="3"/>
      <line num="408" type="stmt" count="3"/>
      <line num="409" type="stmt" count="3"/>
      <line num="410" type="stmt" count="3"/>
      <line num="417" type="method" name="formatDate" visibility="private" complexity="1" crap="1" count="5"/>
      <line num="418" type="stmt" count="5"/>
      <line num="428" type="method" name="getDates" visibility="private" complexity="2" crap="2" count="10"/>
      <line num="429" type="stmt" count="10"/>
      <line num="430" type="stmt" count="10"/>
      <line num="431" type="stmt" count="10"/>
      <line num="433" type="stmt" count="10"/>
      <metrics loc="436" ncloc="328" classes="1" methods="19" coveredmethods="11" conditionals="0" coveredconditionals="0" statements="190" coveredstatements="178" elements="209" coveredelements="189"/>
    </file>
    <file name="/workspace/src/extensions/PageViewInfoGA/src/Hooks/Main.php">
      <class name="MediaWiki\Extension\PageViewInfoGA\Hooks\Main" namespace="global">
        <metrics complexity="10" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="31" coveredstatements="31" elements="34" coveredelements="34"/>
      </class>
      <line num="21" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="9"/>
      <line num="22" type="stmt" count="9"/>
      <line num="30" type="method" name="onBeforePageDisplay" visibility="public" complexity="5" crap="5" count="9"/>
      <line num="31" type="stmt" count="9"/>
      <line num="32" type="stmt" count="9"/>
      <line num="33" type="stmt" count="1"/>
      <line num="36" type="stmt" count="8"/>
      <line num="37" type="stmt" count="8"/>
      <line num="38" type="stmt" count="8"/>
      <line num="39" type="stmt" count="8"/>
      <line num="40" type="stmt" count="8"/>
      <line num="41" type="stmt" count="8"/>
      <line num="42" type="stmt" count="8"/>
      <line num="43" type="stmt" count="8"/>
      <line num="44" type="stmt" count="8"/>
      <line num="48" type="stmt" count="8"/>
      <line num="49" type="stmt" count="8"/>
      <line num="50" type="stmt" count="3"/>
      <line num="51" type="stmt" count="3"/>
      <line num="52" type="stmt" count="3"/>
      <line num="55" type="stmt" count="8"/>
      <line num="56" type="stmt" count="3"/>
      <line num="57" type="stmt" count="8"/>
      <line num="58" type="stmt" count="8"/>
      <line num="59" type="stmt" count="8"/>
      <line num="71" type="method" name="isPageview" visibility="private" complexity="4" crap="4" count="8"/>
      <line num="72" type="stmt" count="8"/>
      <line num="73" type="stmt" count="8"/>
      <line num="74" type="stmt" count="8"/>
      <line num="75" type="stmt" count="8"/>
      <line num="76" type="stmt" count="8"/>
      <line num="77" type="stmt" count="8"/>
      <line num="78" type="stmt" count="8"/>
      <line num="79" type="stmt" count="8"/>
      <metrics loc="82" ncloc="60" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="31" coveredstatements="31" elements="34" coveredelements="34"/>
    </file>
    <file name="/workspace/src/extensions/PageViewInfoGA/src/Hooks/MediaWikiServices.php">
      <class name="MediaWiki\Extension\PageViewInfoGA\Hooks\MediaWikiServices" namespace="global">
        <metrics complexity="2" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="34" coveredstatements="0" elements="35" coveredelements="0"/>
      </class>
      <line num="20" type="method" name="onMediaWikiServices" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="21" type="stmt" count="0"/>
      <line num="22" type="stmt" count="0"/>
      <line num="25" type="stmt" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="28" type="stmt" count="0"/>
      <line num="29" type="stmt" count="0"/>
      <line num="30" type="stmt" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="35" type="stmt" count="0"/>
      <line num="36" type="stmt" count="0"/>
      <line num="37" type="stmt" count="0"/>
      <line num="38" type="stmt" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="47" type="stmt" count="0"/>
      <line num="48" type="stmt" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <line num="50" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="54" type="stmt" count="0"/>
      <line num="55" type="stmt" count="0"/>
      <line num="56" type="stmt" count="0"/>
      <line num="57" type="stmt" count="0"/>
      <line num="58" type="stmt" count="0"/>
      <line num="59" type="stmt" count="0"/>
      <metrics loc="62" ncloc="57" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="34" coveredstatements="0" elements="35" coveredelements="0"/>
    </file>
    <metrics files="5" loc="773" ncloc="581" classes="4" methods="27" coveredmethods="17" conditionals="0" coveredconditionals="0" statements="310" coveredstatements="261" elements="337" coveredelements="278"/>
  </project>
</coverage>
