mirror of
https://github.com/elyby/oauth2-server.git
synced 2024-12-27 07:20:18 +05:30
210 lines
27 KiB
HTML
210 lines
27 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>Code Coverage for /home/travis/build/thephpleague/oauth2-server/src/Util/KeyAlgorithm/DefaultAlgorithm.php</title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<link href="../../css/bootstrap.min.css" rel="stylesheet">
|
|
<link href="../../css/style.css" rel="stylesheet">
|
|
<!--[if lt IE 9]>
|
|
<script src="../../js/html5shiv.min.js"></script>
|
|
<script src="../../js/respond.min.js"></script>
|
|
<![endif]-->
|
|
</head>
|
|
<body>
|
|
<header>
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<ol class="breadcrumb">
|
|
<li><a href="../../index.html">/home/travis/build/thephpleague/oauth2-server/src</a></li>
|
|
<li><a href="../index.html">Util</a></li>
|
|
<li><a href="index.html">KeyAlgorithm</a></li>
|
|
<li class="active">DefaultAlgorithm.php</li>
|
|
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</header>
|
|
<div class="container">
|
|
<table class="table table-bordered">
|
|
<thead>
|
|
<tr>
|
|
<td> </td>
|
|
<td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td>
|
|
</tr>
|
|
<tr>
|
|
<td> </td>
|
|
<td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td>
|
|
<td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td>
|
|
<td colspan="3"><div align="center"><strong>Lines</strong></div></td>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td class="success">Total</td>
|
|
<td class="success big"> <div class="progress">
|
|
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
|
|
<span class="sr-only">100.00% covered (success)</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td class="success small"><div align="right">100.00%</div></td>
|
|
<td class="success small"><div align="right">1 / 1</div></td>
|
|
<td class="success big"> <div class="progress">
|
|
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
|
|
<span class="sr-only">100.00% covered (success)</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td class="success small"><div align="right">100.00%</div></td>
|
|
<td class="success small"><div align="right">1 / 1</div></td>
|
|
<td class="success small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
|
|
<td class="success big"> <div class="progress">
|
|
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
|
|
<span class="sr-only">100.00% covered (success)</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td class="success small"><div align="right">100.00%</div></td>
|
|
<td class="success small"><div align="right">6 / 6</div></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="success">DefaultAlgorithm</td>
|
|
<td class="success big"> <div class="progress">
|
|
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
|
|
<span class="sr-only">100.00% covered (success)</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td class="success small"><div align="right">100.00%</div></td>
|
|
<td class="success small"><div align="right">1 / 1</div></td>
|
|
<td class="success big"> <div class="progress">
|
|
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
|
|
<span class="sr-only">100.00% covered (success)</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td class="success small"><div align="right">100.00%</div></td>
|
|
<td class="success small"><div align="right">1 / 1</div></td>
|
|
<td class="success small">4</td>
|
|
<td class="success big"> <div class="progress">
|
|
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
|
|
<span class="sr-only">100.00% covered (success)</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td class="success small"><div align="right">100.00%</div></td>
|
|
<td class="success small"><div align="right">6 / 6</div></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="success" colspan="4"> <a href="#19">generate($len = 40)</a></td>
|
|
<td class="success big"> <div class="progress">
|
|
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
|
|
<span class="sr-only">100.00% covered (success)</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td class="success small"><div align="right">100.00%</div></td>
|
|
<td class="success small"><div align="right">1 / 1</div></td>
|
|
<td class="success small">4</td>
|
|
<td class="success big"> <div class="progress">
|
|
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
|
|
<span class="sr-only">100.00% covered (success)</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td class="success small"><div align="right">100.00%</div></td>
|
|
<td class="success small"><div align="right">6 / 6</div></td>
|
|
</tr>
|
|
|
|
|
|
</tbody>
|
|
</table>
|
|
<table id="code" class="table table-borderless table-condensed">
|
|
<tbody>
|
|
<tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr>
|
|
<tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr>
|
|
<tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * OAuth 2.0 Secure key interface</span></td></tr>
|
|
<tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr>
|
|
<tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @package league/oauth2-server</span></td></tr>
|
|
<tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @author Alex Bilbie <hello@alexbilbie.com></span></td></tr>
|
|
<tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @copyright Copyright (c) Alex Bilbie</span></td></tr>
|
|
<tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> * @license http://mit-license.org/</span></td></tr>
|
|
<tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="comment"> * @link https://github.com/thephpleague/oauth2-server</span></td></tr>
|
|
<tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr>
|
|
<tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">League</span><span class="default">\</span><span class="default">OAuth2</span><span class="default">\</span><span class="default">Server</span><span class="default">\</span><span class="default">Util</span><span class="default">\</span><span class="default">KeyAlgorithm</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default"> </span><span class="default">DefaultAlgorithm</span><span class="default"> </span><span class="keyword">implements</span><span class="default"> </span><span class="default">KeyAlgorithmInterface</span></td></tr>
|
|
<tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr>
|
|
<tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr>
|
|
<tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="comment"> * {@inheritdoc}</span></td></tr>
|
|
<tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr>
|
|
<tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">generate</span><span class="keyword">(</span><span class="default">$len</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">40</span><span class="keyword">)</span></td></tr>
|
|
<tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr>
|
|
<tr class="success popin" data-title="12 tests cover line 21" data-content="<ul><li class="success">LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest</li><li class="success">LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken</li><li class="success">LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes</li><li class="success">LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowRefreshToken</li><li class="success">LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes</li><li class="success">LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes</li><li class="success">LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken</li><li class="success">LeagueTests\TokenType\MacTest::testGenerateResponse</li><li class="success">LeagueTests\util\SecureKeyTest::testGenerate</li></ul>" data-placement="bottom" data-html="true"><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$stripped</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">''</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">do</span><span class="default"> </span><span class="keyword">{</span></td></tr>
|
|
<tr class="success popin" data-title="12 tests cover line 23" data-content="<ul><li class="success">LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest</li><li class="success">LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken</li><li class="success">LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes</li><li class="success">LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowRefreshToken</li><li class="success">LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes</li><li class="success">LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes</li><li class="success">LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken</li><li class="success">LeagueTests\TokenType\MacTest::testGenerateResponse</li><li class="success">LeagueTests\util\SecureKeyTest::testGenerate</li></ul>" data-placement="bottom" data-html="true"><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$bytes</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">openssl_random_pseudo_bytes</span><span class="keyword">(</span><span class="default">$len</span><span class="keyword">,</span><span class="default"> </span><span class="default">$strong</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// We want to stop execution if the key fails because, well, that is bad.</span></td></tr>
|
|
<tr class="success popin" data-title="12 tests cover line 26" data-content="<ul><li class="success">LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest</li><li class="success">LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken</li><li class="success">LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes</li><li class="success">LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowRefreshToken</li><li class="success">LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes</li><li class="success">LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes</li><li class="success">LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken</li><li class="success">LeagueTests\TokenType\MacTest::testGenerateResponse</li><li class="success">LeagueTests\util\SecureKeyTest::testGenerate</li></ul>" data-placement="bottom" data-html="true"><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">$bytes</span><span class="default"> </span><span class="default">===</span><span class="default"> </span><span class="default">false</span><span class="default"> </span><span class="default">||</span><span class="default"> </span><span class="default">$strong</span><span class="default"> </span><span class="default">===</span><span class="default"> </span><span class="default">false</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr>
|
|
<tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// @codeCoverageIgnoreStart</span></td></tr>
|
|
<tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">throw</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">'Error Generating Key'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// @codeCoverageIgnoreEnd</span></td></tr>
|
|
<tr class="warning"><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr>
|
|
<tr class="success popin" data-title="12 tests cover line 31" data-content="<ul><li class="success">LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest</li><li class="success">LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken</li><li class="success">LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes</li><li class="success">LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowRefreshToken</li><li class="success">LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes</li><li class="success">LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes</li><li class="success">LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken</li><li class="success">LeagueTests\TokenType\MacTest::testGenerateResponse</li><li class="success">LeagueTests\util\SecureKeyTest::testGenerate</li></ul>" data-placement="bottom" data-html="true"><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$stripped</span><span class="default"> </span><span class="default">.=</span><span class="default"> </span><span class="default">str_replace</span><span class="keyword">(</span><span class="keyword">[</span><span class="default">'/'</span><span class="keyword">,</span><span class="default"> </span><span class="default">'+'</span><span class="keyword">,</span><span class="default"> </span><span class="default">'='</span><span class="keyword">]</span><span class="keyword">,</span><span class="default"> </span><span class="default">''</span><span class="keyword">,</span><span class="default"> </span><span class="default">base64_encode</span><span class="keyword">(</span><span class="default">$bytes</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr class="success popin" data-title="12 tests cover line 32" data-content="<ul><li class="success">LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest</li><li class="success">LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken</li><li class="success">LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes</li><li class="success">LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowRefreshToken</li><li class="success">LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes</li><li class="success">LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes</li><li class="success">LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken</li><li class="success">LeagueTests\TokenType\MacTest::testGenerateResponse</li><li class="success">LeagueTests\util\SecureKeyTest::testGenerate</li></ul>" data-placement="bottom" data-html="true"><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span><span class="default"> </span><span class="keyword">while</span><span class="default"> </span><span class="keyword">(</span><span class="default">strlen</span><span class="keyword">(</span><span class="default">$stripped</span><span class="keyword">)</span><span class="default"> </span><span class="keyword"><</span><span class="default"> </span><span class="default">$len</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"></td></tr>
|
|
<tr class="success popin" data-title="12 tests cover line 34" data-content="<ul><li class="success">LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest</li><li class="success">LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken</li><li class="success">LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes</li><li class="success">LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowRefreshToken</li><li class="success">LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes</li><li class="success">LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes</li><li class="success">LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken</li><li class="success">LeagueTests\TokenType\MacTest::testGenerateResponse</li><li class="success">LeagueTests\util\SecureKeyTest::testGenerate</li></ul>" data-placement="bottom" data-html="true"><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">substr</span><span class="keyword">(</span><span class="default">$stripped</span><span class="keyword">,</span><span class="default"> </span><span class="default">0</span><span class="keyword">,</span><span class="default"> </span><span class="default">$len</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr class="warning"><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr>
|
|
<tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
|
|
|
|
</tbody>
|
|
</table>
|
|
<footer>
|
|
<hr/>
|
|
<h4>Legend</h4>
|
|
<p>
|
|
<span class="success"><strong>Executed</strong></span>
|
|
<span class="danger"><strong>Not Executed</strong></span>
|
|
<span class="warning"><strong>Dead Code</strong></span>
|
|
</p>
|
|
<p>
|
|
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.0.14</a> using <a href="http://php.net/" target="_top">PHP 5.6.3</a> and <a href="http://phpunit.de/">PHPUnit 4.3.5</a> at Sat Dec 27 23:04:55 UTC 2014.</small>
|
|
</p>
|
|
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
|
|
</footer>
|
|
</div>
|
|
<script src="../../js/jquery.min.js" type="text/javascript"></script>
|
|
<script src="../../js/bootstrap.min.js" type="text/javascript"></script>
|
|
<script src="../../js/holder.js" type="text/javascript"></script>
|
|
<script type="text/javascript">
|
|
$(function() {
|
|
var $window = $(window)
|
|
, $top_link = $('#toplink')
|
|
, $body = $('body, html')
|
|
, offset = $('#code').offset().top;
|
|
|
|
$top_link.hide().click(function(event) {
|
|
event.preventDefault();
|
|
$body.animate({scrollTop:0}, 800);
|
|
});
|
|
|
|
$window.scroll(function() {
|
|
if($window.scrollTop() > offset) {
|
|
$top_link.fadeIn();
|
|
} else {
|
|
$top_link.fadeOut();
|
|
}
|
|
}).scroll();
|
|
|
|
$('.popin').popover({trigger: 'hover'});
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|