coverage/index.html in trusty-cms-2.0.21 vs coverage/index.html in trusty-cms-2.0.22
- old
+ new
@@ -3,40 +3,40 @@
<head>
<title>Code coverage for Trusty-cms</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script src='./assets/0.10.0/application.js' type='text/javascript'></script>
<link href='./assets/0.10.0/application.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
- <link rel="shortcut icon" type="image/png" href="./assets/0.10.0/favicon_red.png" />
+ <link rel="shortcut icon" type="image/png" href="./assets/0.10.0/favicon_yellow.png" />
<link rel="icon" type="image/png" href="./assets/0.10.0/favicon.png" />
</head>
<body>
<div id="loading">
<img src="./assets/0.10.0/loading.gif" alt="loading"/>
</div>
<div id="wrapper" style="display:none;">
- <div class="timestamp">Generated <abbr class="timeago" title="2016-05-31T08:32:14-04:00">2016-05-31T08:32:14-04:00</abbr></div>
+ <div class="timestamp">Generated <abbr class="timeago" title="2016-07-13T10:56:47-04:00">2016-07-13T10:56:47-04:00</abbr></div>
<ul class="group_tabs"></ul>
<div id="content">
<div class="file_list_container" id="AllFiles">
<h2>
<span class="group_name">All Files</span>
- (<span class="covered_percent"><span class="red">57.69%</span></span>
+ (<span class="covered_percent"><span class="yellow">83.05%</span></span>
covered at
<span class="covered_strength">
<span class="green">
- 1.33
+ 15.42
</span>
</span> hits/line)
</h2>
<a name="AllFiles"></a>
<div>
- <b>15</b> files in total.
- <b>527</b> relevant lines.
- <span class="green"><b>304</b> lines covered</span> and
- <span class="red"><b>223</b> lines missed </span>
+ <b>54</b> files in total.
+ <b>1451</b> relevant lines.
+ <span class="green"><b>1205</b> lines covered</span> and
+ <span class="red"><b>246</b> lines missed </span>
</div>
<table class="file_list">
<thead>
<tr>
<th>File</th>
@@ -49,110 +49,420 @@
</tr>
</thead>
<tbody>
<tr>
- <td class="strong"><a href="#7948f870edaadd3e575d89cc132d72051ee743fa" class="src_link" title="app/controllers/admin/password_resets_controller.rb">app/controllers/admin/password_resets_controller.rb</a></td>
- <td class="red strong">72.22 %</td>
- <td>29</td>
- <td>18</td>
- <td>13</td>
+ <td class="strong"><a href="#f599caf63215e126813bbd891071cc4dd1d3b8db" class="src_link" title="app/controllers/admin/configuration_controller.rb">app/controllers/admin/configuration_controller.rb</a></td>
+ <td class="red strong">79.17 %</td>
+ <td>50</td>
+ <td>24</td>
+ <td>19</td>
<td>5</td>
- <td>1.4</td>
+ <td>2.1</td>
</tr>
<tr>
+ <td class="strong"><a href="#17657aadafa48e20fcb3bd8e5e210965c961320a" class="src_link" title="app/controllers/admin/extensions_controller.rb">app/controllers/admin/extensions_controller.rb</a></td>
+ <td class="red strong">60.0 %</td>
+ <td>11</td>
+ <td>5</td>
+ <td>3</td>
+ <td>2</td>
+ <td>0.6</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#21519a85f829e2fbd7235984e406553be64b6b27" class="src_link" title="app/controllers/admin/layouts_controller.rb">app/controllers/admin/layouts_controller.rb</a></td>
+ <td class="green strong">100.0 %</td>
+ <td>8</td>
+ <td>3</td>
+ <td>3</td>
+ <td>0</td>
+ <td>1.0</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#325babca4b7e56052d91c8b2915714d266a831a1" class="src_link" title="app/controllers/admin/page_parts_controller.rb">app/controllers/admin/page_parts_controller.rb</a></td>
+ <td class="green strong">100.0 %</td>
+ <td>9</td>
+ <td>6</td>
+ <td>6</td>
+ <td>0</td>
+ <td>1.0</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#12b0c87d1b29324b336517e5a0d2d4df2cc9de32" class="src_link" title="app/controllers/admin/pages_controller.rb">app/controllers/admin/pages_controller.rb</a></td>
+ <td class="red strong">75.0 %</td>
+ <td>100</td>
+ <td>64</td>
+ <td>48</td>
+ <td>16</td>
+ <td>8.3</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#327c19329660164ad68bedbd54229068fb659364" class="src_link" title="app/controllers/admin/preferences_controller.rb">app/controllers/admin/preferences_controller.rb</a></td>
+ <td class="yellow strong">82.35 %</td>
+ <td>29</td>
+ <td>17</td>
+ <td>14</td>
+ <td>3</td>
+ <td>1.0</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#977407fe9a2d9fadbb1030a030adcae347c6b0e4" class="src_link" title="app/controllers/admin/resource_controller.rb">app/controllers/admin/resource_controller.rb</a></td>
+ <td class="yellow strong">85.83 %</td>
+ <td>244</td>
+ <td>120</td>
+ <td>103</td>
+ <td>17</td>
+ <td>6.7</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#12f7b293396af1e7bb429783083e0914ad715492" class="src_link" title="app/controllers/admin/users_controller.rb">app/controllers/admin/users_controller.rb</a></td>
+ <td class="red strong">45.45 %</td>
+ <td>40</td>
+ <td>22</td>
+ <td>10</td>
+ <td>12</td>
+ <td>0.5</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#0548274635e28f0ade382b1fa914b469704b942f" class="src_link" title="app/controllers/admin/welcome_controller.rb">app/controllers/admin/welcome_controller.rb</a></td>
+ <td class="green strong">93.33 %</td>
+ <td>48</td>
+ <td>30</td>
+ <td>28</td>
+ <td>2</td>
+ <td>10.7</td>
+ </tr>
+
+ <tr>
<td class="strong"><a href="#24df5092852a2bbf884d9a6bfe4815b19056ea68" class="src_link" title="app/controllers/application_controller.rb">app/controllers/application_controller.rb</a></td>
- <td class="red strong">64.15 %</td>
+ <td class="red strong">77.36 %</td>
<td>103</td>
<td>53</td>
+ <td>41</td>
+ <td>12</td>
+ <td>34.0</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#41a9856bd8ee68d9d8cbdb50d567363cd4411956" class="src_link" title="app/controllers/site_controller.rb">app/controllers/site_controller.rb</a></td>
+ <td class="red strong">52.46 %</td>
+ <td>103</td>
+ <td>61</td>
+ <td>32</td>
+ <td>29</td>
+ <td>3.5</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#9b973efca458788c05c2f1159ddf02033a2951e2" class="src_link" title="app/helpers/admin/configuration_helper.rb">app/helpers/admin/configuration_helper.rb</a></td>
+ <td class="green strong">90.48 %</td>
+ <td>81</td>
+ <td>42</td>
+ <td>38</td>
+ <td>4</td>
+ <td>20.1</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#a60b971bc58b9cda32471f0b9507a73bde5812c2" class="src_link" title="app/helpers/admin/extensions_helper.rb">app/helpers/admin/extensions_helper.rb</a></td>
+ <td class="green strong">100.0 %</td>
+ <td>2</td>
+ <td>1</td>
+ <td>1</td>
+ <td>0</td>
+ <td>1.0</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#f1b71910ed03a14a4fc4cce2c151914e870c1588" class="src_link" title="app/helpers/admin/layouts_helper.rb">app/helpers/admin/layouts_helper.rb</a></td>
+ <td class="green strong">100.0 %</td>
+ <td>3</td>
+ <td>1</td>
+ <td>1</td>
+ <td>0</td>
+ <td>1.0</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#352ca55a4f63d046b73dfeec822cb6b55487185d" class="src_link" title="app/helpers/admin/node_helper.rb">app/helpers/admin/node_helper.rb</a></td>
+ <td class="red strong">60.71 %</td>
+ <td>110</td>
+ <td>56</td>
<td>34</td>
- <td>19</td>
- <td>2.5</td>
+ <td>22</td>
+ <td>1.8</td>
</tr>
<tr>
+ <td class="strong"><a href="#07cdad2482cd19a92b6c1e2ed1c9d59c7b7b0a2a" class="src_link" title="app/helpers/admin/pages_helper.rb">app/helpers/admin/pages_helper.rb</a></td>
+ <td class="red strong">75.0 %</td>
+ <td>29</td>
+ <td>16</td>
+ <td>12</td>
+ <td>4</td>
+ <td>3.1</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#781d9751547430b5f53e45c0a93bbe1399c262fa" class="src_link" title="app/helpers/admin/preferences_helper.rb">app/helpers/admin/preferences_helper.rb</a></td>
+ <td class="green strong">100.0 %</td>
+ <td>3</td>
+ <td>1</td>
+ <td>1</td>
+ <td>0</td>
+ <td>1.0</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#f67b3ce4ba5dfcbf735dc48d7e441eb59a706783" class="src_link" title="app/helpers/admin/references_helper.rb">app/helpers/admin/references_helper.rb</a></td>
+ <td class="red strong">31.82 %</td>
+ <td>46</td>
+ <td>22</td>
+ <td>7</td>
+ <td>15</td>
+ <td>0.3</td>
+ </tr>
+
+ <tr>
<td class="strong"><a href="#024a60096d1599d436568bc78004ef69dd2dbf20" class="src_link" title="app/helpers/admin/regions_helper.rb">app/helpers/admin/regions_helper.rb</a></td>
- <td class="red strong">15.79 %</td>
+ <td class="green strong">94.74 %</td>
<td>29</td>
<td>19</td>
- <td>3</td>
- <td>16</td>
- <td>0.2</td>
+ <td>18</td>
+ <td>1</td>
+ <td>164.8</td>
</tr>
<tr>
+ <td class="strong"><a href="#c36f97396afab7acde2fbe5a063b597d0b40f848" class="src_link" title="app/helpers/admin/resource_helper.rb">app/helpers/admin/resource_helper.rb</a></td>
+ <td class="green strong">100.0 %</td>
+ <td>2</td>
+ <td>1</td>
+ <td>1</td>
+ <td>0</td>
+ <td>1.0</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#b5b66cc2c9ceed019da04d236c18a819343756d7" class="src_link" title="app/helpers/admin/users_helper.rb">app/helpers/admin/users_helper.rb</a></td>
+ <td class="red strong">33.33 %</td>
+ <td>8</td>
+ <td>6</td>
+ <td>2</td>
+ <td>4</td>
+ <td>0.3</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#84bf416885112758ab122c8fd5353d9486d18756" class="src_link" title="app/helpers/admin/welcome_helper.rb">app/helpers/admin/welcome_helper.rb</a></td>
+ <td class="green strong">100.0 %</td>
+ <td>2</td>
+ <td>1</td>
+ <td>1</td>
+ <td>0</td>
+ <td>1.0</td>
+ </tr>
+
+ <tr>
<td class="strong"><a href="#e8ceba241b247e5465fc091266d42235281b188b" class="src_link" title="app/helpers/application_helper.rb">app/helpers/application_helper.rb</a></td>
- <td class="red strong">28.57 %</td>
+ <td class="yellow strong">80.16 %</td>
<td>239</td>
<td>126</td>
- <td>36</td>
- <td>90</td>
- <td>0.3</td>
+ <td>101</td>
+ <td>25</td>
+ <td>36.9</td>
</tr>
<tr>
+ <td class="strong"><a href="#a39d78c4fc93191de03915ecd09328b64f41b587" class="src_link" title="app/helpers/site_helper.rb">app/helpers/site_helper.rb</a></td>
+ <td class="green strong">100.0 %</td>
+ <td>2</td>
+ <td>1</td>
+ <td>1</td>
+ <td>0</td>
+ <td>1.0</td>
+ </tr>
+
+ <tr>
<td class="strong"><a href="#24a478dc81cb312b20b3b6ff5d59f560307249ae" class="src_link" title="app/models/layout.rb">app/models/layout.rb</a></td>
<td class="green strong">100.0 %</td>
<td>16</td>
<td>9</td>
<td>9</td>
<td>0</td>
+ <td>4.0</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#0a4dd54b5173ef00862c0de3249f9062548ae0ed" class="src_link" title="app/models/menu_renderer.rb">app/models/menu_renderer.rb</a></td>
+ <td class="yellow strong">89.33 %</td>
+ <td>140</td>
+ <td>75</td>
+ <td>67</td>
+ <td>8</td>
+ <td>4.4</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#802c290d3237e413d582c6e3df59d0b1a783c364" class="src_link" title="app/models/page_context.rb">app/models/page_context.rb</a></td>
+ <td class="red strong">59.38 %</td>
+ <td>53</td>
+ <td>32</td>
+ <td>19</td>
+ <td>13</td>
+ <td>5.8</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#ee99abb95d276df654be743872e18cebe9cd7a76" class="src_link" title="app/models/page_field.rb">app/models/page_field.rb</a></td>
+ <td class="green strong">100.0 %</td>
+ <td>4</td>
+ <td>3</td>
+ <td>3</td>
+ <td>0</td>
<td>1.0</td>
</tr>
<tr>
+ <td class="strong"><a href="#a305f6d4632c6314af7cf73ec29de843155d1b7c" class="src_link" title="app/models/page_part.rb">app/models/page_part.rb</a></td>
+ <td class="yellow strong">90.0 %</td>
+ <td>20</td>
+ <td>10</td>
+ <td>9</td>
+ <td>1</td>
+ <td>4.5</td>
+ </tr>
+
+ <tr>
<td class="strong"><a href="#7388d43ba91c2a28d73545a6809e9d998ff37d21" class="src_link" title="app/models/status.rb">app/models/status.rb</a></td>
- <td class="red strong">77.78 %</td>
+ <td class="green strong">100.0 %</td>
<td>41</td>
<td>18</td>
- <td>14</td>
- <td>4</td>
- <td>2.1</td>
+ <td>18</td>
+ <td>0</td>
+ <td>15.5</td>
</tr>
<tr>
+ <td class="strong"><a href="#a3d0e95dccc6cc402608c949f61537589888f7d7" class="src_link" title="app/models/text_filter.rb">app/models/text_filter.rb</a></td>
+ <td class="red strong">63.16 %</td>
+ <td>36</td>
+ <td>19</td>
+ <td>12</td>
+ <td>7</td>
+ <td>0.6</td>
+ </tr>
+
+ <tr>
<td class="strong"><a href="#3245bdc6bf68c4799ba1a1df23d11fe7c154286c" class="src_link" title="app/models/user.rb">app/models/user.rb</a></td>
- <td class="red strong">75.0 %</td>
+ <td class="yellow strong">82.69 %</td>
<td>97</td>
<td>52</td>
- <td>39</td>
- <td>13</td>
- <td>2.8</td>
+ <td>43</td>
+ <td>9</td>
+ <td>5.6</td>
</tr>
<tr>
<td class="strong"><a href="#224090690cd46a1b82b33b9876817d1d65b88e42" class="src_link" title="app/models/user_action_observer.rb">app/models/user_action_observer.rb</a></td>
- <td class="green strong">92.86 %</td>
+ <td class="green strong">100.0 %</td>
<td>25</td>
<td>14</td>
- <td>13</td>
- <td>1</td>
- <td>3.8</td>
+ <td>14</td>
+ <td>0</td>
+ <td>24.3</td>
</tr>
<tr>
<td class="strong"><a href="#d68b3b291e170af9809ca2750a36de47a6d1f510" class="src_link" title="lib/login_system.rb">lib/login_system.rb</a></td>
- <td class="red strong">39.47 %</td>
+ <td class="red strong">78.95 %</td>
<td>131</td>
<td>76</td>
- <td>30</td>
- <td>46</td>
- <td>1.5</td>
+ <td>60</td>
+ <td>16</td>
+ <td>55.8</td>
</tr>
<tr>
- <td class="strong"><a href="#fac0612cad92bfcdda24e22600d5d675c7682536" class="src_link" title="spec/controllers/password_resets_controller_spec.rb">spec/controllers/password_resets_controller_spec.rb</a></td>
- <td class="red strong">67.14 %</td>
- <td>126</td>
- <td>70</td>
- <td>47</td>
+ <td class="strong"><a href="#bfaefba265a613847eb17511c91aeb33124d3b07" class="src_link" title="lib/trusty_cms/admin_ui/region_partials.rb">lib/trusty_cms/admin_ui/region_partials.rb</a></td>
+ <td class="yellow strong">83.33 %</td>
<td>23</td>
+ <td>12</td>
+ <td>10</td>
+ <td>2</td>
+ <td>125.1</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#62bfb9f3ee6e8ac2730bec06c3df334c59428c84" class="src_link" title="lib/trusty_cms/available_locales.rb">lib/trusty_cms/available_locales.rb</a></td>
+ <td class="green strong">100.0 %</td>
+ <td>19</td>
+ <td>10</td>
+ <td>10</td>
+ <td>0</td>
+ <td>76.5</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#7ec5b193ca91bf0e62afdd726aa3bd77aba3eaaa" class="src_link" title="lib/trusty_cms/pagination/controller.rb">lib/trusty_cms/pagination/controller.rb</a></td>
+ <td class="green strong">92.86 %</td>
+ <td>41</td>
+ <td>14</td>
+ <td>13</td>
+ <td>1</td>
+ <td>17.8</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#bed13f447cc3293c2e33013bd302547d11b4f7be" class="src_link" title="lib/trusty_cms/resource_responses.rb">lib/trusty_cms/resource_responses.rb</a></td>
+ <td class="red strong">80.0 %</td>
+ <td>121</td>
+ <td>70</td>
+ <td>56</td>
+ <td>14</td>
+ <td>14.6</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#caa7ec0029d51eb5c9bde0f679fcfcb448b3cd01" class="src_link" title="spec/controllers/application_controller_spec.rb">spec/controllers/application_controller_spec.rb</a></td>
+ <td class="green strong">100.0 %</td>
+ <td>60</td>
+ <td>40</td>
+ <td>40</td>
+ <td>0</td>
+ <td>1.5</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#337cbe163bc8bfdb5179ca7658af10ab02e6c229" class="src_link" title="spec/controllers/users_controller_spec.rb">spec/controllers/users_controller_spec.rb</a></td>
+ <td class="green strong">100.0 %</td>
+ <td>6</td>
+ <td>3</td>
+ <td>3</td>
+ <td>0</td>
<td>1.0</td>
</tr>
<tr>
+ <td class="strong"><a href="#a27fd50274e4ef14baece85f6fc1ef2dff24481e" class="src_link" title="spec/controllers/welcome_controller_spec.rb">spec/controllers/welcome_controller_spec.rb</a></td>
+ <td class="green strong">100.0 %</td>
+ <td>6</td>
+ <td>3</td>
+ <td>3</td>
+ <td>0</td>
+ <td>1.0</td>
+ </tr>
+
+ <tr>
<td class="strong"><a href="#b8f4cd120e1d67bc8beac165fcf0bc0aa4481001" class="src_link" title="spec/factories/layout.rb">spec/factories/layout.rb</a></td>
<td class="green strong">100.0 %</td>
<td>17</td>
<td>4</td>
<td>4</td>
@@ -185,21 +495,101 @@
<td class="green strong">100.0 %</td>
<td>35</td>
<td>25</td>
<td>25</td>
<td>0</td>
- <td>1.4</td>
+ <td>1.0</td>
</tr>
<tr>
+ <td class="strong"><a href="#5d70a4be91101af4532a395a46c8d595d80b8fb0" class="src_link" title="spec/features/admin_login_spec.rb">spec/features/admin_login_spec.rb</a></td>
+ <td class="green strong">100.0 %</td>
+ <td>92</td>
+ <td>52</td>
+ <td>52</td>
+ <td>0</td>
+ <td>1.3</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#a413cd7cc1724408d7a525553d4834265f04885e" class="src_link" title="spec/features/config_spec.rb">spec/features/config_spec.rb</a></td>
+ <td class="green strong">100.0 %</td>
+ <td>34</td>
+ <td>21</td>
+ <td>21</td>
+ <td>0</td>
+ <td>1.3</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#ab78dbd6e5a827bfa8db3f97d98882ca4edbba01" class="src_link" title="spec/features/javascript_smoke_spec.rb">spec/features/javascript_smoke_spec.rb</a></td>
+ <td class="green strong">100.0 %</td>
+ <td>59</td>
+ <td>30</td>
+ <td>30</td>
+ <td>0</td>
+ <td>1.0</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#7570781db4c3155e965463b658470da596800bab" class="src_link" title="spec/features/layouts_spec.rb">spec/features/layouts_spec.rb</a></td>
+ <td class="green strong">100.0 %</td>
+ <td>49</td>
+ <td>33</td>
+ <td>33</td>
+ <td>0</td>
+ <td>1.3</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#d4d1a930f2f47b0ce0846efa1c917ebdf0bf2c69" class="src_link" title="spec/features/pages_spec.rb">spec/features/pages_spec.rb</a></td>
+ <td class="green strong">100.0 %</td>
+ <td>55</td>
+ <td>34</td>
+ <td>34</td>
+ <td>0</td>
+ <td>1.2</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#f651b1e0d6b03b639bb1910679349dcb5c4906d8" class="src_link" title="spec/models/layout_spec.rb">spec/models/layout_spec.rb</a></td>
+ <td class="green strong">100.0 %</td>
+ <td>29</td>
+ <td>19</td>
+ <td>19</td>
+ <td>0</td>
+ <td>1.1</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#5e6e398d1f9a901307ea91dab9ee535aa8c9a444" class="src_link" title="spec/rails_helper.rb">spec/rails_helper.rb</a></td>
+ <td class="green strong">100.0 %</td>
+ <td>73</td>
+ <td>24</td>
+ <td>24</td>
+ <td>0</td>
+ <td>3.1</td>
+ </tr>
+
+ <tr>
+ <td class="strong"><a href="#e26ef2de8407666da2a4b16334e43c210a4e8735" class="src_link" title="spec/routing/welcome_routing_spec.rb">spec/routing/welcome_routing_spec.rb</a></td>
+ <td class="green strong">100.0 %</td>
+ <td>18</td>
+ <td>8</td>
+ <td>8</td>
+ <td>0</td>
+ <td>1.0</td>
+ </tr>
+
+ <tr>
<td class="strong"><a href="#992b2e5d02f76777327edeb5263d89e2cab32d72" class="src_link" title="spec/support/custom_actions.rb">spec/support/custom_actions.rb</a></td>
- <td class="red strong">20.0 %</td>
+ <td class="green strong">100.0 %</td>
<td>10</td>
<td>5</td>
- <td>1</td>
- <td>4</td>
- <td>0.2</td>
+ <td>5</td>
+ <td>0</td>
+ <td>17.0</td>
</tr>
</tbody>
</table>
</div>
@@ -214,210 +604,3414 @@
using RSpec
</div>
<div class="source_files">
- <div class="source_table" id="7948f870edaadd3e575d89cc132d72051ee743fa">
+ <div class="source_table" id="f599caf63215e126813bbd891071cc4dd1d3b8db">
<div class="header">
- <h3>app/controllers/admin/password_resets_controller.rb</h3>
- <h4><span class="red">72.22 %</span> covered</h4>
+ <h3>app/controllers/admin/configuration_controller.rb</h3>
+ <h4><span class="red">79.17 %</span> covered</h4>
<div>
- <b>18</b> relevant lines.
- <span class="green"><b>13</b> lines covered</span> and
+ <b>24</b> relevant lines.
+ <span class="green"><b>19</b> lines covered</span> and
<span class="red"><b>5</b> lines missed.</span>
</div>
</div>
<pre>
<ol>
<li class="covered" data-hits="1" data-linenumber="1">
<span class="hits">1</span>
- <code class="ruby">class Admin::PasswordResetsController < ApplicationController</code>
+ <code class="ruby">class Admin::ConfigurationController < ApplicationController</code>
</li>
+ <li class="never" data-hits="" data-linenumber="2">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="3">
+
+
+ <code class="ruby"> # Admin::ConfigurationController handles the batch-updating of TrustyCms::Config entries.</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="4">
+
+
+ <code class="ruby"> # It accepts any set of config name-value pairs but is accessible only to administrators.</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="5">
+
+
+ <code class="ruby"> # Note that configuration is routed as a singular resource so we only deal with show/edit/update</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="6">
+
+
+ <code class="ruby"> # and the show and edit views determine what set of config values is shown and made editable.</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="7">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="8">
+ <span class="hits">1</span>
+
+ <code class="ruby"> before_filter :initialize_config</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="9">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="10">
+ <span class="hits">1</span>
+
+ <code class="ruby"> only_allow_access_to :edit, :update,</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="11">
+
+
+ <code class="ruby"> :when => [:admin],</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="12">
+
+
+ <code class="ruby"> :denied_url => { :controller => 'admin/configuration', :action => 'show' },</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="13">
+
+
+ <code class="ruby"> :denied_message => 'You must have admin privileges to edit site configuration.'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="14">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="15">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def show</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="16">
+ <span class="hits">5</span>
+
+ <code class="ruby"> @user = current_user</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="17">
+ <span class="hits">5</span>
+
+ <code class="ruby"> render</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="18">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="19">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="20">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def edit</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="21">
+ <span class="hits">1</span>
+
+ <code class="ruby"> render</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="22">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="23">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="24">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def update</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="25">
+ <span class="hits">1</span>
+
+ <code class="ruby"> if params[:trusty_config]</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="26">
+ <span class="hits">1</span>
+
+ <code class="ruby"> begin</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="27">
+ <span class="hits">1</span>
+
+ <code class="ruby"> TrustyCms.config.transaction do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="28">
+ <span class="hits">1</span>
+
+ <code class="ruby"> params[:trusty_config].each_pair do |key, value|</code>
+ </li>
+
+ <li class="covered" data-hits="10" data-linenumber="29">
+ <span class="hits">10</span>
+
+ <code class="ruby"> @trusty_config[key] = TrustyCms::Config.find_or_initialize_by(key: key)</code>
+ </li>
+
+ <li class="covered" data-hits="10" data-linenumber="30">
+ <span class="hits">10</span>
+
+ <code class="ruby"> @trusty_config[key].value = value # validation sets errors on @trusty_config['key'] that the helper methods will pick up</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="31">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="32">
+ <span class="hits">1</span>
+
+ <code class="ruby"> redirect_to :action => :show</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="33">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="34">
+
+
+ <code class="ruby"> rescue ActiveRecord::RecordInvalid => e</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="35">
+
+
+ <code class="ruby"> flash[:error] = "Configuration error: please check the form"</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="36">
+
+
+ <code class="ruby"> render :action => :edit</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="37">
+
+
+ <code class="ruby"> rescue TrustyCms::Config::ConfigError => e</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="38">
+
+
+ <code class="ruby"> flash[:error] = "Configuration error: #{e}"</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="39">
+
+
+ <code class="ruby"> render :action => :edit</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="40">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="41">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="42">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="43">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="44">
+ <span class="hits">1</span>
+
+ <code class="ruby">protected</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="45">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="46">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def initialize_config</code>
+ </li>
+
+ <li class="covered" data-hits="7" data-linenumber="47">
+ <span class="hits">7</span>
+
+ <code class="ruby"> @trusty_config = {}</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="48">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="49">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="50">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="17657aadafa48e20fcb3bd8e5e210965c961320a">
+ <div class="header">
+ <h3>app/controllers/admin/extensions_controller.rb</h3>
+ <h4><span class="red">60.0 %</span> covered</h4>
+ <div>
+ <b>5</b> relevant lines.
+ <span class="green"><b>3</b> lines covered</span> and
+ <span class="red"><b>2</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">class Admin::ExtensionsController < ApplicationController</code>
+ </li>
+
<li class="covered" data-hits="1" data-linenumber="2">
<span class="hits">1</span>
- <code class="ruby"> no_login_required</code>
+ <code class="ruby"> only_allow_access_to :index,</code>
</li>
+ <li class="never" data-hits="" data-linenumber="3">
+
+
+ <code class="ruby"> :when => :admin,</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="4">
+
+
+ <code class="ruby"> :denied_url => { :controller => 'pages', :action => 'index' },</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="5">
+
+
+ <code class="ruby"> :denied_message => 'You must have administrative privileges to perform this action.'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="6">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="7">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def index</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="8">
+
+
+ <code class="ruby"> @template_name = 'index' # for Admin::RegionsHelper</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="9">
+
+
+ <code class="ruby"> @extensions = TrustyCms::Extension.descendants.sort_by { |e| e.extension_name }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="10">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="11">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="21519a85f829e2fbd7235984e406553be64b6b27">
+ <div class="header">
+ <h3>app/controllers/admin/layouts_controller.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>3</b> relevant lines.
+ <span class="green"><b>3</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">class Admin::LayoutsController < Admin::ResourceController</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="2">
+ <span class="hits">1</span>
+
+ <code class="ruby"> paginate_models</code>
+ </li>
+
<li class="covered" data-hits="1" data-linenumber="3">
<span class="hits">1</span>
- <code class="ruby"> skip_before_filter :verify_authenticity_token</code>
+ <code class="ruby"> only_allow_access_to :index, :show, :new, :create, :edit, :update, :remove, :destroy,</code>
</li>
<li class="never" data-hits="" data-linenumber="4">
+ <code class="ruby"> :when => [:designer, :admin],</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="5">
+
+
+ <code class="ruby"> :denied_url => { :controller => 'admin/pages', :action => 'index' },</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="6">
+
+
+ <code class="ruby"> :denied_message => 'You must have designer privileges to perform this action.'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="7">
+
+
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="5">
+ <li class="never" data-hits="" data-linenumber="8">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="325babca4b7e56052d91c8b2915714d266a831a1">
+ <div class="header">
+ <h3>app/controllers/admin/page_parts_controller.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>6</b> relevant lines.
+ <span class="green"><b>6</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
<span class="hits">1</span>
+ <code class="ruby">class Admin::PagePartsController < Admin::ResourceController</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="2">
+ <span class="hits">1</span>
+
<code class="ruby"> def create</code>
</li>
- <li class="covered" data-hits="5" data-linenumber="6">
- <span class="hits">5</span>
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
- <code class="ruby"> user = User.find_by_email(params[:email])</code>
+ <code class="ruby"> self.model.attributes = params[model_symbol]</code>
</li>
- <li class="covered" data-hits="5" data-linenumber="7">
- <span class="hits">5</span>
+ <li class="covered" data-hits="1" data-linenumber="4">
+ <span class="hits">1</span>
- <code class="ruby"> if user</code>
+ <code class="ruby"> @controller_name = 'page'</code>
</li>
- <li class="covered" data-hits="3" data-linenumber="8">
- <span class="hits">3</span>
+ <li class="covered" data-hits="1" data-linenumber="5">
+ <span class="hits">1</span>
- <code class="ruby"> user.send_password_reset</code>
+ <code class="ruby"> @template_name = 'edit'</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="9">
+ <li class="covered" data-hits="1" data-linenumber="6">
+ <span class="hits">1</span>
+ <code class="ruby"> render :partial => "page_part", :object => model,</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="7">
- <code class="ruby"> redirect_to welcome_path, :notice => "Email sent with password reset instructions."</code>
+
+ <code class="ruby"> :locals => {:page_part_counter => params[:index].to_i}</code>
</li>
+ <li class="never" data-hits="" data-linenumber="8">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="9">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="12b0c87d1b29324b336517e5a0d2d4df2cc9de32">
+ <div class="header">
+ <h3>app/controllers/admin/pages_controller.rb</h3>
+ <h4><span class="red">75.0 %</span> covered</h4>
+ <div>
+ <b>64</b> relevant lines.
+ <span class="green"><b>48</b> lines covered</span> and
+ <span class="red"><b>16</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">class Admin::PagesController < Admin::ResourceController</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="2">
+ <span class="hits">1</span>
+
+ <code class="ruby"> before_filter :initialize_meta_rows_and_buttons, :only => [:new, :edit, :create, :update]</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+
+ <code class="ruby"> before_filter :count_deleted_pages, :only => [:destroy]</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="4">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="5">
+ <span class="hits">1</span>
+
+ <code class="ruby"> class PreviewStop < ActiveRecord::Rollback</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="6">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def message</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="7">
+
+
+ <code class="ruby"> 'Changes not saved!'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="8">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="9">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
<li class="never" data-hits="" data-linenumber="10">
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="11">
+ <span class="hits">1</span>
+
+ <code class="ruby"> create_responses do |r|</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="12">
+ <span class="hits">1</span>
+
+ <code class="ruby"> r.plural.js do</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="13">
+
+
+ <code class="ruby"> @level = params[:level].to_i</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="14">
+
+
+ <code class="ruby"> @index = params[:index].to_i</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="15">
+
+
+ <code class="ruby"> @rendered_html = ""</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="16">
+
+
+ <code class="ruby"> @template_name = 'index'</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="17">
+
+
+ <code class="ruby"> self.models = Page.find(params[:page_id]).children.all</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="18">
+
+
+ <code class="ruby"> response.headers['Content-Type'] = 'text/html;charset=utf-8'</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="19">
+
+
+ <code class="ruby"> render :action => 'children.html.haml', :layout => false</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="20">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="21">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="22">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="23">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def index</code>
+ </li>
+
+ <li class="covered" data-hits="25" data-linenumber="24">
+ <span class="hits">25</span>
+
+ <code class="ruby"> @homepage = Page.find_by_parent_id(nil)</code>
+ </li>
+
+ <li class="covered" data-hits="25" data-linenumber="25">
+ <span class="hits">25</span>
+
+ <code class="ruby"> response_for :plural</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="26">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="27">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="28">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def new</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="29">
+ <span class="hits">4</span>
+
+ <code class="ruby"> @page = self.model = model_class.new_with_defaults(trusty_config)</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="30">
+ <span class="hits">4</span>
+
+ <code class="ruby"> assign_page_attributes</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="31">
+ <span class="hits">4</span>
+
+ <code class="ruby"> response_for :new</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="32">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="33">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="34">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def preview</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="35">
+ <span class="hits">1</span>
+
+ <code class="ruby"> render_preview</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="36">
+
+
+ <code class="ruby"> rescue PreviewStop => exception</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="37">
+
+
+ <code class="ruby"> render :text => exception.message unless @performed_render</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="38">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="39">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="40">
+ <span class="hits">1</span>
+
+ <code class="ruby"> private</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="41">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def assign_page_attributes</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="42">
+ <span class="hits">4</span>
+
+ <code class="ruby"> if params[:page_id].blank?</code>
+ </li>
+
+ <li class="covered" data-hits="3" data-linenumber="43">
+ <span class="hits">3</span>
+
+ <code class="ruby"> self.model.slug = '/'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="44">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="45">
+ <span class="hits">4</span>
+
+ <code class="ruby"> self.model.parent_id = params[:page_id]</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="46">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="47">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="48">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def model_class</code>
+ </li>
+
+ <li class="covered" data-hits="198" data-linenumber="49">
+ <span class="hits">198</span>
+
+ <code class="ruby"> if Page.descendants.any? { |d| d.to_s == params[:page_class] }</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="50">
+
+
+ <code class="ruby"> verify_page_class(params[:page_class])</code>
+ </li>
+
+ <li class="covered" data-hits="99" data-linenumber="51">
+ <span class="hits">99</span>
+
+ <code class="ruby"> elsif params[:page_id]</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="52">
+ <span class="hits">5</span>
+
+ <code class="ruby"> Page.find(params[:page_id]).children</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="53">
+
+
+ <code class="ruby"> else</code>
+ </li>
+
+ <li class="covered" data-hits="94" data-linenumber="54">
+ <span class="hits">94</span>
+
+ <code class="ruby"> Page</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="55">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="56">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="57">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="58">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def render_preview</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="59">
+ <span class="hits">1</span>
+
+ <code class="ruby"> Page.transaction do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="60">
+ <span class="hits">1</span>
+
+ <code class="ruby"> page_class = Page.descendants.include?(model_class) ? model_class : Page</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="61">
+ <span class="hits">1</span>
+
+ <code class="ruby"> if request.referer =~ %r{/admin/pages/(\d+)/edit}</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="62">
+
+
+ <code class="ruby"> page = Page.find($1).becomes(page_class)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="63">
+
+
+ <code class="ruby"> page.update_attributes(params[:page])</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="64">
+
+
+ <code class="ruby"> page.published_at ||= Time.now</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="65">
+
+
+ <code class="ruby"> else</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="66">
+ <span class="hits">1</span>
+
+ <code class="ruby"> page = page_class.new(params[:page])</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="67">
+ <span class="hits">1</span>
+
+ <code class="ruby"> page.published_at = page.updated_at = page.created_at = Time.now</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="68">
+ <span class="hits">1</span>
+
+ <code class="ruby"> page.parent = Page.find($1) if request.referer =~ %r{/admin/pages/(\d+)/children/new}</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="69">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="70">
+ <span class="hits">1</span>
+
+ <code class="ruby"> page.pagination_parameters = pagination_parameters</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="71">
+ <span class="hits">1</span>
+
+ <code class="ruby"> process_with_exception(page)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="72">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="73">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="74">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="75">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def process_with_exception(page)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="76">
+ <span class="hits">1</span>
+
+ <code class="ruby"> page.process(request, response)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="77">
+ <span class="hits">1</span>
+
+ <code class="ruby"> @performed_render = true</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="78">
+ <span class="hits">1</span>
+
+ <code class="ruby"> render template: 'site/show_page', layout: false</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="79">
+ <span class="hits">1</span>
+
+ <code class="ruby"> raise PreviewStop</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="80">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="81">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="82">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def count_deleted_pages</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="83">
+ <span class="hits">1</span>
+
+ <code class="ruby"> @count = model.children.count + 1</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="84">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="85">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="86">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def initialize_meta_rows_and_buttons</code>
+ </li>
+
+ <li class="covered" data-hits="7" data-linenumber="87">
+ <span class="hits">7</span>
+
+ <code class="ruby"> @buttons_partials ||= []</code>
+ </li>
+
+ <li class="covered" data-hits="7" data-linenumber="88">
+ <span class="hits">7</span>
+
+ <code class="ruby"> @meta ||= []</code>
+ </li>
+
+ <li class="covered" data-hits="7" data-linenumber="89">
+ <span class="hits">7</span>
+
+ <code class="ruby"> @meta << {:field => "slug", :type => "text_field", :args => [{:class => 'textbox', :maxlength => 100}]}</code>
+ </li>
+
+ <li class="covered" data-hits="7" data-linenumber="90">
+ <span class="hits">7</span>
+
+ <code class="ruby"> @meta << {:field => "breadcrumb", :type => "text_field", :args => [{:class => 'textbox', :maxlength => 160}]}</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="91">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="92">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="93">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def verify_page_class(page_class)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="94">
+
+
+ <code class="ruby"> if page_class.constantize.ancestors.include?(Page)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="95">
+
+
+ <code class="ruby"> page_class.constantize</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="96">
+
+
<code class="ruby"> else</code>
</li>
- <li class="covered" data-hits="2" data-linenumber="11">
- <span class="hits">2</span>
+ <li class="missed" data-hits="0" data-linenumber="97">
- <code class="ruby"> redirect_to new_admin_password_reset, :notice => "Email not registered, please try re-typing it or contacting your Admin."</code>
+
+ <code class="ruby"> raise "I'm not allowed to constantize #{page_class}!"</code>
</li>
+ <li class="never" data-hits="" data-linenumber="98">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="99">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="100">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="327c19329660164ad68bedbd54229068fb659364">
+ <div class="header">
+ <h3>app/controllers/admin/preferences_controller.rb</h3>
+ <h4><span class="yellow">82.35 %</span> covered</h4>
+ <div>
+ <b>17</b> relevant lines.
+ <span class="green"><b>14</b> lines covered</span> and
+ <span class="red"><b>3</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">class Admin::PreferencesController < ApplicationController</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="2">
+ <span class="hits">1</span>
+
+ <code class="ruby"> before_filter :initialize_variables</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="3">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="4">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def show</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="5">
+ <span class="hits">1</span>
+
+ <code class="ruby"> set_standard_body_style</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="6">
+ <span class="hits">1</span>
+
+ <code class="ruby"> render :edit</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="7">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="8">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="9">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def edit</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="10">
+
+
+ <code class="ruby"> render</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="11">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
<li class="never" data-hits="" data-linenumber="12">
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="13">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def update</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="14">
+ <span class="hits">1</span>
+
+ <code class="ruby"> if @user.update_attributes(params[:user])</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="15">
+ <span class="hits">1</span>
+
+ <code class="ruby"> redirect_to admin_configuration_path</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="16">
+
+
+ <code class="ruby"> else</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="17">
+
+
+ <code class="ruby"> flash[:error] = t('preferences_controller.error_updating')</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="18">
+
+
+ <code class="ruby"> render :edit</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="19">
+
+
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="13">
+ <li class="never" data-hits="" data-linenumber="20">
<code class="ruby"> end</code>
</li>
+ <li class="never" data-hits="" data-linenumber="21">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="22">
+ <span class="hits">1</span>
+
+ <code class="ruby"> private</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="23">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="24">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def initialize_variables</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="25">
+ <span class="hits">2</span>
+
+ <code class="ruby"> @user = current_user</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="26">
+ <span class="hits">2</span>
+
+ <code class="ruby"> @controller_name = 'user'</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="27">
+ <span class="hits">2</span>
+
+ <code class="ruby"> @template_name = 'preferences'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="28">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="29">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="977407fe9a2d9fadbb1030a030adcae347c6b0e4">
+ <div class="header">
+ <h3>app/controllers/admin/resource_controller.rb</h3>
+ <h4><span class="yellow">85.83 %</span> covered</h4>
+ <div>
+ <b>120</b> relevant lines.
+ <span class="green"><b>103</b> lines covered</span> and
+ <span class="red"><b>17</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">require 'trusty_cms/resource_responses'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="2">
+ <span class="hits">1</span>
+
+ <code class="ruby">class Admin::ResourceController < ApplicationController</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+
+ <code class="ruby"> extend TrustyCms::ResourceResponses</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="4">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="5">
+ <span class="hits">1</span>
+
+ <code class="ruby"> helper_method :model, :current_object, :models, :current_objects, :model_symbol, :plural_model_symbol, :model_class, :model_name, :plural_model_name</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="6">
+ <span class="hits">1</span>
+
+ <code class="ruby"> before_filter :populate_format</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="7">
+ <span class="hits">1</span>
+
+ <code class="ruby"> before_filter :never_cache</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="8">
+ <span class="hits">1</span>
+
+ <code class="ruby"> before_filter :load_models, :only => :index</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="9">
+ <span class="hits">1</span>
+
+ <code class="ruby"> before_filter :load_model, :only => [:new, :create, :edit, :update, :remove, :destroy]</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="10">
+ <span class="hits">1</span>
+
+ <code class="ruby"> after_filter :clear_model_cache, :only => [:create, :update, :destroy]</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="11">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="12">
+ <span class="hits">1</span>
+
+ <code class="ruby"> cattr_reader :paginated</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="13">
+ <span class="hits">1</span>
+
+ <code class="ruby"> cattr_accessor :default_per_page, :will_paginate_options</code>
+ </li>
+
<li class="never" data-hits="" data-linenumber="14">
<code class="ruby"></code>
</li>
<li class="covered" data-hits="1" data-linenumber="15">
<span class="hits">1</span>
- <code class="ruby"> def edit</code>
+ <code class="ruby"> create_responses do |r|</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="16">
- <span class="hits">1</span>
+ <li class="never" data-hits="" data-linenumber="16">
- <code class="ruby"> @user = User.where(password_reset_token: params[:id])</code>
+
+ <code class="ruby"> # Equivalent respond_to block for :plural responses:</code>
</li>
<li class="never" data-hits="" data-linenumber="17">
- <code class="ruby"> end</code>
+ <code class="ruby"> # respond_to do |wants|</code>
</li>
<li class="never" data-hits="" data-linenumber="18">
+ <code class="ruby"> # wants.xml { render :xml => models }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="19">
+
+
+ <code class="ruby"> # wants.json { render :json => models }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="20">
+
+
+ <code class="ruby"> # wants.any</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="21">
+
+
+ <code class="ruby"> # end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="22">
+ <span class="hits">1</span>
+
+ <code class="ruby"> r.plural.publish(:xml, :json) { render format_symbol => models }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="23">
+
+
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="19">
+ <li class="covered" data-hits="1" data-linenumber="24">
<span class="hits">1</span>
- <code class="ruby"> def update</code>
+ <code class="ruby"> r.singular.publish(:xml, :json) { render format_symbol => model }</code>
</li>
- <li class="covered" data-hits="2" data-linenumber="20">
+ <li class="covered" data-hits="6" data-linenumber="25">
+ <span class="hits">6</span>
+
+ <code class="ruby"> r.singular.default { redirect_to edit_model_path if action_name == "show" }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="26">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="27">
+ <span class="hits">1</span>
+
+ <code class="ruby"> r.not_found.publish(:xml, :json) { head :not_found }</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="28">
+ <span class="hits">1</span>
+
+ <code class="ruby"> r.not_found.default { announce_not_found; redirect_to :action => "index" }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="29">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="30">
+ <span class="hits">1</span>
+
+ <code class="ruby"> r.invalid.publish(:xml, :json) { render format_symbol => model.errors, :status => :unprocessable_entity }</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="31">
+ <span class="hits">1</span>
+
+ <code class="ruby"> r.invalid.default { announce_validation_errors; render :action => template_name }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="32">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="33">
+ <span class="hits">1</span>
+
+ <code class="ruby"> r.stale.publish(:xml, :json) { head :conflict }</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="34">
+ <span class="hits">1</span>
+
+ <code class="ruby"> r.stale.default { announce_update_conflict; render :action => template_name }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="35">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="36">
+ <span class="hits">1</span>
+
+ <code class="ruby"> r.create.publish(:xml, :json) { render format_symbol => model, :status => :created, :location => url_for(:format => format_symbol, :id => model) }</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="37">
+ <span class="hits">4</span>
+
+ <code class="ruby"> r.create.default { redirect_to continue_url(params) }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="38">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="39">
+ <span class="hits">1</span>
+
+ <code class="ruby"> r.update.publish(:xml, :json) { head :ok }</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="40">
+ <span class="hits">1</span>
+
+ <code class="ruby"> r.update.default { redirect_to continue_url(params) }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="41">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="42">
+ <span class="hits">1</span>
+
+ <code class="ruby"> r.destroy.publish(:xml, :json) { head :deleted }</code>
+ </li>
+
+ <li class="covered" data-hits="3" data-linenumber="43">
+ <span class="hits">3</span>
+
+ <code class="ruby"> r.destroy.default { redirect_to continue_url(params) }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="44">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="45">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="46">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def index</code>
+ </li>
+
+ <li class="covered" data-hits="8" data-linenumber="47">
+ <span class="hits">8</span>
+
+ <code class="ruby"> response_for :plural</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="48">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="49">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="50">
+ <span class="hits">1</span>
+
+ <code class="ruby"> [:show, :new, :edit, :remove].each do |action|</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="51">
+ <span class="hits">4</span>
+
+ <code class="ruby"> class_eval %{</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="52">
+
+
+ <code class="ruby"> def #{action} # def show</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="53">
+
+
+ <code class="ruby"> response_for :singular # response_for :singular</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="54">
+
+
+ <code class="ruby"> end # end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="55">
+
+
+ <code class="ruby"> }, __FILE__, __LINE__</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="56">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="57">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="58">
+ <span class="hits">1</span>
+
+ <code class="ruby"> [:create, :update].each do |action|</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="59">
<span class="hits">2</span>
- <code class="ruby"> @user = User.where(password_reset_token: params[:id])</code>
+ <code class="ruby"> class_eval %{</code>
</li>
- <li class="covered" data-hits="2" data-linenumber="21">
+ <li class="never" data-hits="" data-linenumber="60">
+
+
+ <code class="ruby"> def #{action} # def create</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="61">
+
+
+ <code class="ruby"> model.update_attributes!(params[model_symbol]) # model.update_attributes!(params[model_symbol])</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="62">
+
+
+ <code class="ruby"> response_for :#{action} # response_for :create</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="63">
+
+
+ <code class="ruby"> end # end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="64">
+
+
+ <code class="ruby"> }, __FILE__, __LINE__</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="65">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="66">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="67">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def destroy</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="68">
<span class="hits">2</span>
- <code class="ruby"> if @user.password_reset_sent_at < 2.hours.ago</code>
+ <code class="ruby"> model.destroy</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="22">
+ <li class="covered" data-hits="2" data-linenumber="69">
+ <span class="hits">2</span>
+ <code class="ruby"> response_for :destroy</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="70">
- <code class="ruby"> redirect_to new_password_reset_path, :alert => "Password reset has expired."</code>
+
+ <code class="ruby"> end</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="23">
+ <li class="never" data-hits="" data-linenumber="71">
- <code class="ruby"> elsif @user.update_attributes(params[:user])</code>
+ <code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="24">
+ <li class="covered" data-hits="1" data-linenumber="72">
+ <span class="hits">1</span>
+ <code class="ruby"> def self.model_class(model_class = nil)</code>
+ </li>
+
+ <li class="covered" data-hits="40" data-linenumber="73">
+ <span class="hits">40</span>
- <code class="ruby"> redirect_to welcome_url, :notice => "Password has been reset!"</code>
+ <code class="ruby"> @model_class ||= (model_class || self.controller_name).to_s.singularize.camelize.constantize</code>
</li>
- <li class="never" data-hits="" data-linenumber="25">
+ <li class="never" data-hits="" data-linenumber="74">
- <code class="ruby"> else</code>
+ <code class="ruby"> end</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="26">
+ <li class="never" data-hits="" data-linenumber="75">
- <code class="ruby"> render :edit</code>
+ <code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="27">
+ <li class="never" data-hits="" data-linenumber="76">
+ <code class="ruby"> # call paginate_models to declare that will_paginate should be used in the index view</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="77">
+
+
+ <code class="ruby"> # options specified here are accessible in the view by calling will_paginate_options</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="78">
+
+
+ <code class="ruby"> # eg.</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="79">
+
+
+ <code class="ruby"> #</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="80">
+
+
+ <code class="ruby"> # Class MyController < Admin::ResourceController</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="81">
+
+
+ <code class="ruby"> # paginate_models :per_page => 100</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="82">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="83">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def self.paginate_models(options={})</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="84">
+ <span class="hits">2</span>
+
+ <code class="ruby"> @@paginated = true</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="85">
+ <span class="hits">2</span>
+
+ <code class="ruby"> @@will_paginate_options = options.slice(:class, :previous_label, :next_label, :inner_window, :outer_window, :separator, :container).merge(:param_name => :p)</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="86">
+ <span class="hits">2</span>
+
+ <code class="ruby"> @@default_per_page = options[:per_page]</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="87">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="88">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="89">
+
+
+ <code class="ruby"> # returns a hash of options that can be passed to will_paginate</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="90">
+
+
+ <code class="ruby"> # the @pagination_for@ helper method calls @will_paginate_options@ unless other options are supplied.</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="91">
+
+
+ <code class="ruby"> #</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="92">
+
+
+ <code class="ruby"> # pagination_for(@events)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="93">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="94">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def will_paginate_options</code>
+ </li>
+
+ <li class="covered" data-hits="8" data-linenumber="95">
+ <span class="hits">8</span>
+
+ <code class="ruby"> self.class.will_paginate_options || {}</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="96">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="97">
+ <span class="hits">1</span>
+
+ <code class="ruby"> helper_method :will_paginate_options</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="98">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="99">
+
+
+ <code class="ruby"> # a convenience method that returns true if paginate_models has been called on this controller class</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="100">
+
+
+ <code class="ruby"> # and can be used to make display decisions in controller and view</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="101">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def paginated?</code>
+ </li>
+
+ <li class="covered" data-hits="38" data-linenumber="102">
+ <span class="hits">38</span>
+
+ <code class="ruby"> self.class.paginated == true && params[:pp] != 'all'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="103">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="104">
+ <span class="hits">1</span>
+
+ <code class="ruby"> helper_method :paginated?</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="105">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="106">
+
+
+ <code class="ruby"> # return a hash of page and per_page that can be used to build a will_paginate collection</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="107">
+
+
+ <code class="ruby"> # the per_page figure can be set in several ways:</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="108">
+
+
+ <code class="ruby"> # request parameter > declared by paginate_models > default set in config entry @admin.pagination.per_page@ > overall default of 50</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="109">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def pagination_parameters</code>
+ </li>
+
+ <li class="covered" data-hits="37" data-linenumber="110">
+ <span class="hits">37</span>
+
+ <code class="ruby"> pp = params[:pp] || TrustyCms.config['admin.pagination.per_page']</code>
+ </li>
+
+ <li class="covered" data-hits="37" data-linenumber="111">
+ <span class="hits">37</span>
+
+ <code class="ruby"> pp = (self.class.default_per_page || 50) if pp.blank?</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="112">
+
+
+ <code class="ruby"> {</code>
+ </li>
+
+ <li class="covered" data-hits="37" data-linenumber="113">
+ <span class="hits">37</span>
+
+ <code class="ruby"> :page => (params[:p] || 1).to_i,</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="114">
+
+
+ <code class="ruby"> :per_page => pp.to_i</code>
+ </li>
+
+ <li class="covered" data-hits="37" data-linenumber="115">
+ <span class="hits">37</span>
+
+ <code class="ruby"> }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="116">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="117">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="118">
+ <span class="hits">1</span>
+
+ <code class="ruby"> protected</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="119">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="120">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def rescue_action(exception)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="121">
+
+
+ <code class="ruby"> case exception</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="122">
+
+
+ <code class="ruby"> when ActiveRecord::RecordInvalid</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="123">
+
+
+ <code class="ruby"> response_for :invalid</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="124">
+
+
+ <code class="ruby"> when ActiveRecord::StaleObjectError</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="125">
+
+
+ <code class="ruby"> response_for :stale</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="126">
+
+
+ <code class="ruby"> when ActiveRecord::RecordNotFound</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="127">
+
+
+ <code class="ruby"> response_for :not_found</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="128">
+
+
+ <code class="ruby"> else</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="129">
+
+
+ <code class="ruby"> super</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="130">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="131">
+
+
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="28">
+ <li class="never" data-hits="" data-linenumber="132">
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="133">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def model_class</code>
+ </li>
+
+ <li class="covered" data-hits="40" data-linenumber="134">
+ <span class="hits">40</span>
+
+ <code class="ruby"> self.class.model_class</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="135">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="136">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="137">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def model</code>
+ </li>
+
+ <li class="covered" data-hits="25" data-linenumber="138">
+ <span class="hits">25</span>
+
+ <code class="ruby"> instance_variable_get("@#{model_symbol}") || load_model</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="139">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="140">
+ <span class="hits">1</span>
+
+ <code class="ruby"> alias :current_object :model</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="141">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def model=(object)</code>
+ </li>
+
+ <li class="covered" data-hits="19" data-linenumber="142">
+ <span class="hits">19</span>
+
+ <code class="ruby"> instance_variable_set("@#{model_symbol}", object)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="143">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="144">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def load_model</code>
+ </li>
+
+ <li class="covered" data-hits="15" data-linenumber="145">
+ <span class="hits">15</span>
+
+ <code class="ruby"> self.model = if params[:id]</code>
+ </li>
+
+ <li class="covered" data-hits="6" data-linenumber="146">
+ <span class="hits">6</span>
+
+ <code class="ruby"> model_class.find(params[:id])</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="147">
+
+
+ <code class="ruby"> else</code>
+ </li>
+
+ <li class="covered" data-hits="9" data-linenumber="148">
+ <span class="hits">9</span>
+
+ <code class="ruby"> model_class.new()</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="149">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="150">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="151">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="152">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def models</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="153">
+
+
+ <code class="ruby"> instance_variable_get("@#{plural_model_symbol}") || load_models</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="154">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="155">
+ <span class="hits">1</span>
+
+ <code class="ruby"> alias :current_objects :models</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="156">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def models=(objects)</code>
+ </li>
+
+ <li class="covered" data-hits="33" data-linenumber="157">
+ <span class="hits">33</span>
+
+ <code class="ruby"> instance_variable_set("@#{plural_model_symbol}", objects)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="158">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="159">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def load_models</code>
+ </li>
+
+ <li class="covered" data-hits="33" data-linenumber="160">
+ <span class="hits">33</span>
+
+ <code class="ruby"> self.models = paginated? ? model_class.paginate(pagination_parameters) : model_class.all</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="161">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="162">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="163">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def model_name</code>
+ </li>
+
+ <li class="covered" data-hits="81" data-linenumber="164">
+ <span class="hits">81</span>
+
+ <code class="ruby"> model_class.name</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="165">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="166">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def plural_model_name</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="167">
+
+
+ <code class="ruby"> model_name.pluralize</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="168">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="169">
+ <span class="hits">1</span>
+
+ <code class="ruby"> alias :models_name :plural_model_name</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="170">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="171">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def model_symbol</code>
+ </li>
+
+ <li class="covered" data-hits="48" data-linenumber="172">
+ <span class="hits">48</span>
+
+ <code class="ruby"> model_name.underscore.intern</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="173">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="174">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def plural_model_symbol</code>
+ </li>
+
+ <li class="covered" data-hits="33" data-linenumber="175">
+ <span class="hits">33</span>
+
+ <code class="ruby"> model_name.pluralize.underscore.intern</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="176">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="177">
+ <span class="hits">1</span>
+
+ <code class="ruby"> alias :models_symbol :plural_model_symbol</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="178">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="179">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def humanized_model_name</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="180">
+
+
+ <code class="ruby"> t(model_name.underscore.downcase)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="181">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="182">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="183">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def continue_url(options)</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="184">
+ <span class="hits">5</span>
+
+ <code class="ruby"> options[:redirect_to] || (params[:continue] ? {:action => 'edit', :id => model.id} : index_page_for_model)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="185">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="186">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="187">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def index_page_for_model</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="188">
+ <span class="hits">5</span>
+
+ <code class="ruby"> parts = {:action => "index"}</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="189">
+ <span class="hits">5</span>
+
+ <code class="ruby"> if paginated? && model && i = model_class.all.index(model)</code>
+ </li>
+
+ <li class="covered" data-hits="3" data-linenumber="190">
+ <span class="hits">3</span>
+
+ <code class="ruby"> p = (i / pagination_parameters[:per_page].to_i) + 1</code>
+ </li>
+
+ <li class="covered" data-hits="3" data-linenumber="191">
+ <span class="hits">3</span>
+
+ <code class="ruby"> parts[:p] = p if p && p > 1</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="192">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="193">
+ <span class="hits">5</span>
+
+ <code class="ruby"> parts</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="194">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="195">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="196">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def edit_model_path</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="197">
+
+
+ <code class="ruby"> method = "edit_admin_#{model_name.underscore}_path"</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="198">
+
+
+ <code class="ruby"> send method.to_sym, params[:id]</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="199">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="200">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="201">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def announce_validation_errors</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="202">
+
+
+ <code class="ruby"> flash.now[:error] = t("resource_controller.validation_errors")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="203">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="204">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="205">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def announce_removed</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="206">
+
+
+ <code class="ruby"> ActiveSupport::Deprecation.warn("announce_removed is no longer encouraged in TrustyCms 0.9.x.", caller)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="207">
+
+
+ <code class="ruby"> flash[:notice] = t("resource_controller.removed", :humanized_model_name => humanized_model_name)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="208">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="209">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="210">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def announce_not_found</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="211">
+
+
+ <code class="ruby"> flash[:notice] = t("resource_controller.not_found", :humanized_model_name => humanized_model_name)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="212">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="213">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="214">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def announce_update_conflict</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="215">
+
+
+ <code class="ruby"> flash.now[:error] = t("resource_controller.update_conflict", :humanized_model_name => humanized_model_name)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="216">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="217">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="218">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def clear_model_cache</code>
+ </li>
+
+ <li class="covered" data-hits="6" data-linenumber="219">
+ <span class="hits">6</span>
+
+ <code class="ruby"> Rails.cache.clear</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="220">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="221">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="222">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def format_symbol</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="223">
+
+
+ <code class="ruby"> format.to_sym</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="224">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="225">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="226">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def format</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="227">
+
+
+ <code class="ruby"> params[:format] || 'html'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="228">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="229">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="230">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="231">
+
+
+ <code class="ruby"> # I would like to set this to expires_in(1.minute, :private => true) to allow for more fluid navigation</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="232">
+
+
+ <code class="ruby"> # but the annoyance for concurrent authors would be too great.</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="233">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def never_cache</code>
+ </li>
+
+ <li class="covered" data-hits="49" data-linenumber="234">
+ <span class="hits">49</span>
+
+ <code class="ruby"> expires_now</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="235">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="236">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="237">
+
+
+ <code class="ruby"> # Assist with user agents that cause improper content-negotiation</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="238">
+
+
+ <code class="ruby"> # warn "Remove default HTML format, Accept header no longer used. (#{__FILE__}: #{__LINE__})" if Rails.version !~ /^2\.1/</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="239">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def populate_format</code>
+ </li>
+
+ <li class="covered" data-hits="49" data-linenumber="240">
+ <span class="hits">49</span>
+
+ <code class="ruby"> params[:format] ||= 'html' unless request.xhr?</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="241">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="242">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="243">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="244">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="12f7b293396af1e7bb429783083e0914ad715492">
+ <div class="header">
+ <h3>app/controllers/admin/users_controller.rb</h3>
+ <h4><span class="red">45.45 %</span> covered</h4>
+ <div>
+ <b>22</b> relevant lines.
+ <span class="green"><b>10</b> lines covered</span> and
+ <span class="red"><b>12</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">class Admin::UsersController < Admin::ResourceController</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="2">
+ <span class="hits">1</span>
+
+ <code class="ruby"> paginate_models</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+
+ <code class="ruby"> only_allow_access_to :index, :show, :new, :create, :edit, :update, :remove, :destroy,</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="4">
+
+
+ <code class="ruby"> :when => :admin,</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="5">
+
+
+ <code class="ruby"> :denied_url => { :controller => 'pages', :action => 'index' },</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="6">
+
+
+ <code class="ruby"> :denied_message => 'You must have administrative privileges to perform this action.'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="7">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="8">
+ <span class="hits">1</span>
+
+ <code class="ruby"> before_filter :ensure_deletable, :only => [:remove, :destroy]</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="9">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="10">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def show</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="11">
+
+
+ <code class="ruby"> redirect_to edit_admin_user_path(params[:id])</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="12">
+
+
<code class="ruby"> end</code>
</li>
+ <li class="never" data-hits="" data-linenumber="13">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="14">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def update</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="15">
+
+
+ <code class="ruby"> user_params = params[model_symbol]</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="16">
+
+
+ <code class="ruby"> if user_params && user_params['admin'] == false && model == current_user</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="17">
+
+
+ <code class="ruby"> user_params.delete('admin')</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="18">
+
+
+ <code class="ruby"> annouce_cannot_remove_self_from_admin_role</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="19">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="20">
+
+
+ <code class="ruby"> model.update_attributes!(user_params)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="21">
+
+
+ <code class="ruby"> response_for :update</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="22">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="23">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="24">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def ensure_deletable</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="25">
+
+
+ <code class="ruby"> if current_user.id.to_s == params[:id].to_s</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="26">
+
+
+ <code class="ruby"> announce_cannot_delete_self</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="27">
+
+
+ <code class="ruby"> redirect_to admin_users_path</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="28">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
<li class="never" data-hits="" data-linenumber="29">
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="30">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="31">
+ <span class="hits">1</span>
+
+ <code class="ruby"> private</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="32">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="33">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def announce_cannot_delete_self</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="34">
+
+
+ <code class="ruby"> flash[:error] = t('users_controller.cannot_delete_self')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="35">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="36">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="37">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def annouce_cannot_remove_self_from_admin_role</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="38">
+
+
+ <code class="ruby"> flash[:error] = 'You cannot remove yourself from the admin role.'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="39">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="40">
+
+
<code class="ruby">end</code>
</li>
</ol>
</pre>
</div>
+ <div class="source_table" id="0548274635e28f0ade382b1fa914b469704b942f">
+ <div class="header">
+ <h3>app/controllers/admin/welcome_controller.rb</h3>
+ <h4><span class="green">93.33 %</span> covered</h4>
+ <div>
+ <b>30</b> relevant lines.
+ <span class="green"><b>28</b> lines covered</span> and
+ <span class="red"><b>2</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">class Admin::WelcomeController < ApplicationController</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="2">
+ <span class="hits">1</span>
+
+ <code class="ruby"> no_login_required</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+
+ <code class="ruby"> before_filter :never_cache</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="4">
+ <span class="hits">1</span>
+
+ <code class="ruby"> skip_before_filter :verify_authenticity_token</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="5">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="6">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def index</code>
+ </li>
+
+ <li class="covered" data-hits="23" data-linenumber="7">
+ <span class="hits">23</span>
+
+ <code class="ruby"> redirect_to admin_pages_path</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="8">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="9">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="10">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def login</code>
+ </li>
+
+ <li class="covered" data-hits="45" data-linenumber="11">
+ <span class="hits">45</span>
+
+ <code class="ruby"> if request.post?</code>
+ </li>
+
+ <li class="covered" data-hits="21" data-linenumber="12">
+ <span class="hits">21</span>
+
+ <code class="ruby"> @username_or_email = params[:username_or_email]</code>
+ </li>
+
+ <li class="covered" data-hits="21" data-linenumber="13">
+ <span class="hits">21</span>
+
+ <code class="ruby"> password = params[:password]</code>
+ </li>
+
+ <li class="covered" data-hits="21" data-linenumber="14">
+ <span class="hits">21</span>
+
+ <code class="ruby"> announce_invalid_user unless self.current_user = User.authenticate(@username_or_email, password)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="15">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="45" data-linenumber="16">
+ <span class="hits">45</span>
+
+ <code class="ruby"> if current_user</code>
+ </li>
+
+ <li class="covered" data-hits="19" data-linenumber="17">
+ <span class="hits">19</span>
+
+ <code class="ruby"> if params[:remember_me]</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="18">
+
+
+ <code class="ruby"> current_user.remember_me</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="19">
+
+
+ <code class="ruby"> set_session_cookie</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="20">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="19" data-linenumber="21">
+ <span class="hits">19</span>
+
+ <code class="ruby"> redirect_to(session[:return_to] || welcome_path)</code>
+ </li>
+
+ <li class="covered" data-hits="19" data-linenumber="22">
+ <span class="hits">19</span>
+
+ <code class="ruby"> session[:return_to] = nil</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="23">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="24">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="25">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="26">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def logout</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="27">
+ <span class="hits">1</span>
+
+ <code class="ruby"> request.cookies[:session_token] = { :expires => 1.day.ago.utc }</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="28">
+ <span class="hits">1</span>
+
+ <code class="ruby"> self.current_user.forget_me if self.current_user</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="29">
+ <span class="hits">1</span>
+
+ <code class="ruby"> self.current_user = nil</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="30">
+ <span class="hits">1</span>
+
+ <code class="ruby"> announce_logged_out</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="31">
+ <span class="hits">1</span>
+
+ <code class="ruby"> redirect_to login_path</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="32">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="33">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="34">
+ <span class="hits">1</span>
+
+ <code class="ruby"> private</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="35">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="36">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def never_cache</code>
+ </li>
+
+ <li class="covered" data-hits="69" data-linenumber="37">
+ <span class="hits">69</span>
+
+ <code class="ruby"> expires_now</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="38">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="39">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="40">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def announce_logged_out</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="41">
+ <span class="hits">1</span>
+
+ <code class="ruby"> flash[:notice] = t('welcome_controller.logged_out')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="42">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="43">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="44">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def announce_invalid_user</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="45">
+ <span class="hits">2</span>
+
+ <code class="ruby"> flash.now[:error] = t('welcome_controller.invalid_user')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="46">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="47">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="48">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
<div class="source_table" id="24df5092852a2bbf884d9a6bfe4815b19056ea68">
<div class="header">
<h3>app/controllers/application_controller.rb</h3>
- <h4><span class="red">64.15 %</span> covered</h4>
+ <h4><span class="red">77.36 %</span> covered</h4>
<div>
<b>53</b> relevant lines.
- <span class="green"><b>34</b> lines covered</span> and
- <span class="red"><b>19</b> lines missed.</span>
+ <span class="green"><b>41</b> lines covered</span> and
+ <span class="red"><b>12</b> lines missed.</span>
</div>
</div>
<pre>
<ol>
@@ -552,18 +4146,18 @@
<span class="hits">1</span>
<code class="ruby"> def initialize</code>
</li>
- <li class="covered" data-hits="17" data-linenumber="23">
- <span class="hits">17</span>
+ <li class="covered" data-hits="361" data-linenumber="23">
+ <span class="hits">361</span>
<code class="ruby"> super</code>
</li>
- <li class="covered" data-hits="17" data-linenumber="24">
- <span class="hits">17</span>
+ <li class="covered" data-hits="361" data-linenumber="24">
+ <span class="hits">361</span>
<code class="ruby"> @trusty_config = TrustyCms::Config</code>
</li>
<li class="never" data-hits="" data-linenumber="25">
@@ -582,85 +4176,85 @@
<span class="hits">1</span>
<code class="ruby"> def template_name</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="28">
+ <li class="covered" data-hits="57" data-linenumber="28">
+ <span class="hits">57</span>
-
<code class="ruby"> case self.action_name</code>
</li>
<li class="never" data-hits="" data-linenumber="29">
<code class="ruby"> when 'index'</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="30">
+ <li class="covered" data-hits="34" data-linenumber="30">
+ <span class="hits">34</span>
-
<code class="ruby"> 'index'</code>
</li>
<li class="never" data-hits="" data-linenumber="31">
<code class="ruby"> when 'new','create'</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="32">
+ <li class="covered" data-hits="7" data-linenumber="32">
+ <span class="hits">7</span>
-
<code class="ruby"> 'new'</code>
</li>
<li class="never" data-hits="" data-linenumber="33">
<code class="ruby"> when 'show'</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="34">
+ <li class="covered" data-hits="6" data-linenumber="34">
+ <span class="hits">6</span>
-
<code class="ruby"> 'show'</code>
</li>
<li class="never" data-hits="" data-linenumber="35">
<code class="ruby"> when 'edit', 'update'</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="36">
+ <li class="covered" data-hits="5" data-linenumber="36">
+ <span class="hits">5</span>
-
<code class="ruby"> 'edit'</code>
</li>
<li class="never" data-hits="" data-linenumber="37">
<code class="ruby"> when 'remove', 'destroy'</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="38">
+ <li class="covered" data-hits="4" data-linenumber="38">
+ <span class="hits">4</span>
-
<code class="ruby"> 'remove'</code>
</li>
<li class="never" data-hits="" data-linenumber="39">
<code class="ruby"> else</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="40">
+ <li class="covered" data-hits="1" data-linenumber="40">
+ <span class="hits">1</span>
-
<code class="ruby"> self.action_name</code>
</li>
<li class="never" data-hits="" data-linenumber="41">
@@ -750,12 +4344,12 @@
<span class="hits">1</span>
<code class="ruby"> def set_current_user</code>
</li>
- <li class="covered" data-hits="9" data-linenumber="56">
- <span class="hits">9</span>
+ <li class="covered" data-hits="151" data-linenumber="56">
+ <span class="hits">151</span>
<code class="ruby"> UserActionObserver.instance.current_user = current_user</code>
</li>
<li class="never" data-hits="" data-linenumber="57">
@@ -774,12 +4368,12 @@
<span class="hits">1</span>
<code class="ruby"> def set_user_locale</code>
</li>
- <li class="covered" data-hits="9" data-linenumber="60">
- <span class="hits">9</span>
+ <li class="covered" data-hits="151" data-linenumber="60">
+ <span class="hits">151</span>
<code class="ruby"> I18n.locale = current_user && !current_user.locale.blank? ? current_user.locale : TrustyCms::Config['default_locale']</code>
</li>
<li class="never" data-hits="" data-linenumber="61">
@@ -798,12 +4392,12 @@
<span class="hits">1</span>
<code class="ruby"> def set_timezone</code>
</li>
- <li class="covered" data-hits="9" data-linenumber="64">
- <span class="hits">9</span>
+ <li class="covered" data-hits="153" data-linenumber="64">
+ <span class="hits">153</span>
<code class="ruby"> Time.zone = TrustyCms::Config['local.timezone'] != nil && TrustyCms::Config['local.timezone'].empty? ? Time.zone_default : TrustyCms::Config['local.timezone']</code>
</li>
<li class="never" data-hits="" data-linenumber="65">
@@ -822,24 +4416,24 @@
<span class="hits">1</span>
<code class="ruby"> def set_javascripts_and_stylesheets</code>
</li>
- <li class="covered" data-hits="9" data-linenumber="68">
- <span class="hits">9</span>
+ <li class="covered" data-hits="152" data-linenumber="68">
+ <span class="hits">152</span>
<code class="ruby"> @stylesheets ||= []</code>
</li>
- <li class="covered" data-hits="9" data-linenumber="69">
- <span class="hits">9</span>
+ <li class="covered" data-hits="152" data-linenumber="69">
+ <span class="hits">152</span>
<code class="ruby"> @stylesheets.concat %w(admin/main)</code>
</li>
- <li class="covered" data-hits="9" data-linenumber="70">
- <span class="hits">9</span>
+ <li class="covered" data-hits="152" data-linenumber="70">
+ <span class="hits">152</span>
<code class="ruby"> @javascripts ||= []</code>
</li>
<li class="never" data-hits="" data-linenumber="71">
@@ -858,18 +4452,18 @@
<span class="hits">1</span>
<code class="ruby"> def set_standard_body_style</code>
</li>
- <li class="covered" data-hits="9" data-linenumber="74">
- <span class="hits">9</span>
+ <li class="covered" data-hits="15" data-linenumber="74">
+ <span class="hits">15</span>
<code class="ruby"> @body_classes ||= []</code>
</li>
- <li class="covered" data-hits="9" data-linenumber="75">
- <span class="hits">9</span>
+ <li class="covered" data-hits="15" data-linenumber="75">
+ <span class="hits">15</span>
<code class="ruby"> @body_classes.concat(%w(reversed))</code>
</li>
<li class="never" data-hits="" data-linenumber="76">
@@ -1042,18 +4636,2424 @@
</ol>
</pre>
</div>
+ <div class="source_table" id="41a9856bd8ee68d9d8cbdb50d567363cd4411956">
+ <div class="header">
+ <h3>app/controllers/site_controller.rb</h3>
+ <h4><span class="red">52.46 %</span> covered</h4>
+ <div>
+ <b>61</b> relevant lines.
+ <span class="green"><b>32</b> lines covered</span> and
+ <span class="red"><b>29</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">require 'trusty_cms/pagination/controller'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="2">
+ <span class="hits">1</span>
+
+ <code class="ruby">class SiteController < ApplicationController</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+
+ <code class="ruby"> include TrustyCms::Pagination::Controller</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="4">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="5">
+ <span class="hits">1</span>
+
+ <code class="ruby"> skip_filter :verify_authenticity_token</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="6">
+ <span class="hits">1</span>
+
+ <code class="ruby"> no_login_required</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="7">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="8">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def self.cache_timeout=(val)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="9">
+
+
+ <code class="ruby"> TrustyCms::PageResponseCacheDirector.cache_timeout=(val)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="10">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="11">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def self.cache_timeout</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="12">
+
+
+ <code class="ruby"> TrustyCms::PageResponseCacheDirector.cache_timeout</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="13">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="14">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="15">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def show_page</code>
+ </li>
+
+ <li class="covered" data-hits="24" data-linenumber="16">
+ <span class="hits">24</span>
+
+ <code class="ruby"> url = params[:url]</code>
+ </li>
+
+ <li class="covered" data-hits="24" data-linenumber="17">
+ <span class="hits">24</span>
+
+ <code class="ruby"> if Array === url</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="18">
+
+
+ <code class="ruby"> url = url.join('/')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="19">
+
+
+ <code class="ruby"> else</code>
+ </li>
+
+ <li class="covered" data-hits="24" data-linenumber="20">
+ <span class="hits">24</span>
+
+ <code class="ruby"> url = url.to_s</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="21">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="24" data-linenumber="22">
+ <span class="hits">24</span>
+
+ <code class="ruby"> if @page = find_page(url)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="23">
+
+
+ <code class="ruby"> batch_page_status_refresh if (url == "/" || url == "")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="24">
+
+
+ <code class="ruby"> # This is a bit of a hack to get Vanity URL pages working in another extension</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="25">
+
+
+ <code class="ruby"> # In Rails 2, redirect_to halted execution, so process_page could be aliased and</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="26">
+
+
+ <code class="ruby"> # a redirect could be used. This no longer works. There's a better fix for this,</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="27">
+
+
+ <code class="ruby"> # but for now, anything that aliases process_page can return false if it's rendering</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="28">
+
+
+ <code class="ruby"> # or redirecting on its own.</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="29">
+
+
+ <code class="ruby"> return unless process_page(@page)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="30">
+
+
+ <code class="ruby"> set_cache_control</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="31">
+
+
+ <code class="ruby"> @performed_render ||= true</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="32">
+
+
+ <code class="ruby"> render layout: false</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="33">
+
+
+ <code class="ruby"> else</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="34">
+ <span class="hits">1</span>
+
+ <code class="ruby"> render :template => 'site/not_found', :status => 404, layout: false</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="35">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="36">
+
+
+ <code class="ruby"> rescue Page::MissingRootPageError</code>
+ </li>
+
+ <li class="covered" data-hits="23" data-linenumber="37">
+ <span class="hits">23</span>
+
+ <code class="ruby"> redirect_to welcome_path</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="38">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="39">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="40">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def cacheable_request?</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="41">
+
+
+ <code class="ruby"> (request.head? || request.get?) && live?</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="42">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="43">
+ <span class="hits">1</span>
+
+ <code class="ruby"> hide_action :cacheable_request?</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="44">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="45">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def set_expiry(time, options={})</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="46">
+
+
+ <code class="ruby"> expires_in time, options</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="47">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="48">
+ <span class="hits">1</span>
+
+ <code class="ruby"> hide_action :set_expiry</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="49">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="50">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def set_etag(val)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="51">
+
+
+ <code class="ruby"> headers['ETag'] = val</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="52">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="53">
+ <span class="hits">1</span>
+
+ <code class="ruby"> hide_action :set_expiry</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="54">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="55">
+ <span class="hits">1</span>
+
+ <code class="ruby"> private</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="56">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def batch_page_status_refresh</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="57">
+
+
+ <code class="ruby"> @changed_pages = []</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="58">
+
+
+ <code class="ruby"> @pages = Page.where({:status_id => Status[:scheduled].id})</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="59">
+
+
+ <code class="ruby"> @pages.each do |page|</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="60">
+
+
+ <code class="ruby"> if page.published_at <= Time.now</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="61">
+
+
+ <code class="ruby"> page.status_id = Status[:published].id</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="62">
+
+
+ <code class="ruby"> page.save</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="63">
+
+
+ <code class="ruby"> @changed_pages << page.id</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="64">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="65">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="66">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="67">
+
+
+ <code class="ruby"> expires_in nil, :private=>true, "no-cache" => true if @changed_pages.length > 0</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="68">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="69">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="70">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def set_cache_control</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="71">
+
+
+ <code class="ruby"> response_cache_director(@page).set_cache_control</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="72">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="73">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="74">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def response_cache_director(page)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="75">
+
+
+ <code class="ruby"> klass_name = "TrustyCms::#{page.class}ResponseCacheDirector"</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="76">
+
+
+ <code class="ruby"> begin</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="77">
+
+
+ <code class="ruby"> klass = klass_name.constantize</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="78">
+
+
+ <code class="ruby"> rescue NameError, LoadError</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="79">
+
+
+ <code class="ruby"> director_klass = "TrustyCms::PageResponseCacheDirector"</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="80">
+
+
+ <code class="ruby"> eval(%Q{class #{klass_name} < #{director_klass}; end}, TOPLEVEL_BINDING)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="81">
+
+
+ <code class="ruby"> klass = director_klass.constantize</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="82">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="83">
+
+
+ <code class="ruby"> klass.new(page, self)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="84">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="85">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="86">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def find_page(url)</code>
+ </li>
+
+ <li class="covered" data-hits="24" data-linenumber="87">
+ <span class="hits">24</span>
+
+ <code class="ruby"> found = Page.find_by_path(url, live?)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="88">
+ <span class="hits">1</span>
+
+ <code class="ruby"> found if found and (found.published? or dev?)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="89">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="90">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="91">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def process_page(page)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="92">
+
+
+ <code class="ruby"> page.pagination_parameters = pagination_parameters</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="93">
+
+
+ <code class="ruby"> page.process(request, response)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="94">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="95">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="96">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def dev?</code>
+ </li>
+
+ <li class="covered" data-hits="24" data-linenumber="97">
+ <span class="hits">24</span>
+
+ <code class="ruby"> request.host == @trusty_config['dev.host'] || request.host =~ /^dev\./</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="98">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="99">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="100">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def live?</code>
+ </li>
+
+ <li class="covered" data-hits="24" data-linenumber="101">
+ <span class="hits">24</span>
+
+ <code class="ruby"> not dev?</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="102">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="103">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="9b973efca458788c05c2f1159ddf02033a2951e2">
+ <div class="header">
+ <h3>app/helpers/admin/configuration_helper.rb</h3>
+ <h4><span class="green">90.48 %</span> covered</h4>
+ <div>
+ <b>42</b> relevant lines.
+ <span class="green"><b>38</b> lines covered</span> and
+ <span class="red"><b>4</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">module Admin::ConfigurationHelper</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="2">
+
+
+ <code class="ruby"> # Defines helper methods for use in the admin interface when displaying or editing configuration.</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="3">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="4">
+
+
+ <code class="ruby"> # Renders the setting as label and value:</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="5">
+
+
+ <code class="ruby"> #</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="6">
+
+
+ <code class="ruby"> # show_config("admin.title")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="7">
+
+
+ <code class="ruby"> # => <label for="admin_title">Admin title<label><span id="admin_title">TrustyCms CMS</span></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="8">
+
+
+ <code class="ruby"> #</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="9">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def show_config(key, options={})</code>
+ </li>
+
+ <li class="covered" data-hits="50" data-linenumber="10">
+ <span class="hits">50</span>
+
+ <code class="ruby"> setting = setting_for(key)</code>
+ </li>
+
+ <li class="covered" data-hits="50" data-linenumber="11">
+ <span class="hits">50</span>
+
+ <code class="ruby"> setting.valid?</code>
+ </li>
+
+ <li class="covered" data-hits="50" data-linenumber="12">
+ <span class="hits">50</span>
+
+ <code class="ruby"> domkey = key.gsub(/\W/, '_')</code>
+ </li>
+
+ <li class="covered" data-hits="50" data-linenumber="13">
+ <span class="hits">50</span>
+
+ <code class="ruby"> html = ""</code>
+ </li>
+
+ <li class="covered" data-hits="50" data-linenumber="14">
+ <span class="hits">50</span>
+
+ <code class="ruby"> html << content_tag(:label, t("trusty_config.#{key}").titlecase, :for => domkey)</code>
+ </li>
+
+ <li class="covered" data-hits="50" data-linenumber="15">
+ <span class="hits">50</span>
+
+ <code class="ruby"> if setting.boolean?</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="16">
+ <span class="hits">5</span>
+
+ <code class="ruby"> value = setting.checked? ? t('yes') : t('no')</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="17">
+ <span class="hits">5</span>
+
+ <code class="ruby"> html << content_tag(:span, value, :id => domkey, :class => "#{value} #{options[:class]}")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="18">
+
+
+ <code class="ruby"> else</code>
+ </li>
+
+ <li class="covered" data-hits="45" data-linenumber="19">
+ <span class="hits">45</span>
+
+ <code class="ruby"> value = setting.selected_value || setting.value</code>
+ </li>
+
+ <li class="covered" data-hits="45" data-linenumber="20">
+ <span class="hits">45</span>
+
+ <code class="ruby"> html << content_tag(:span, value, :id => domkey, :class => options[:class])</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="21">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="50" data-linenumber="22">
+ <span class="hits">50</span>
+
+ <code class="ruby"> html << content_tag(:span, " #{t("units.#{setting.units}")}", :class => 'units') if setting.units</code>
+ </li>
+
+ <li class="covered" data-hits="50" data-linenumber="23">
+ <span class="hits">50</span>
+
+ <code class="ruby"> html << content_tag(:span, " #{t('warning')}: #{[setting.errors.get(:value)].flatten.first}", :class => 'warning') if setting.errors.get(:value)</code>
+ </li>
+
+ <li class="covered" data-hits="50" data-linenumber="24">
+ <span class="hits">50</span>
+
+ <code class="ruby"> Rails.logger.error(html)</code>
+ </li>
+
+ <li class="covered" data-hits="50" data-linenumber="25">
+ <span class="hits">50</span>
+
+ <code class="ruby"> html.html_safe</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="26">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="27">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="28">
+
+
+ <code class="ruby"> # Renders the setting as label and appropriate input field:</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="29">
+
+
+ <code class="ruby"> #</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="30">
+
+
+ <code class="ruby"> # edit_setting("admin.title")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="31">
+
+
+ <code class="ruby"> # => <label for="admin_title">Admin title<label><input type="text" name="config['admin.title']" id="admin_title" value="TrustyCms CMS" /></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="32">
+
+
+ <code class="ruby"> #</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="33">
+
+
+ <code class="ruby"> # edit_config("defaults.page.status")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="34">
+
+
+ <code class="ruby"> # =></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="35">
+
+
+ <code class="ruby"> # <label for="defaults_page_status">Default page status<label></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="36">
+
+
+ <code class="ruby"> # <select type="text" name="config['defaults.page.status']" id="defaults_page_status"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="37">
+
+
+ <code class="ruby"> # <option value="Draft">Draft</option></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="38">
+
+
+ <code class="ruby"> # ...</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="39">
+
+
+ <code class="ruby"> # </select></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="40">
+
+
+ <code class="ruby"> #</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="41">
+
+
+ <code class="ruby"> # edit_setting("user.allow_password_reset?")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="42">
+
+
+ <code class="ruby"> # => <label for="user_allow_password_reset_">Admin title<label><input type="checkbox" name="config['user.allow_password_reset?']" id="user_allow_password_reset_" value="1" checked="checked" /></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="43">
+
+
+ <code class="ruby"> #</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="44">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def edit_config(key, options={})</code>
+ </li>
+
+ <li class="covered" data-hits="10" data-linenumber="45">
+ <span class="hits">10</span>
+
+ <code class="ruby"> setting = setting_for(key)</code>
+ </li>
+
+ <li class="covered" data-hits="10" data-linenumber="46">
+ <span class="hits">10</span>
+
+ <code class="ruby"> domkey = key.gsub(/\W/, '_')</code>
+ </li>
+
+ <li class="covered" data-hits="10" data-linenumber="47">
+ <span class="hits">10</span>
+
+ <code class="ruby"> name = "trusty_config[#{key}]"</code>
+ </li>
+
+ <li class="covered" data-hits="10" data-linenumber="48">
+ <span class="hits">10</span>
+
+ <code class="ruby"> title = t("trusty_config.#{key}").titlecase</code>
+ </li>
+
+ <li class="covered" data-hits="10" data-linenumber="49">
+ <span class="hits">10</span>
+
+ <code class="ruby"> title << content_tag(:span, " (#{t("units.#{setting.units}")})", :class => 'units') if setting.units</code>
+ </li>
+
+ <li class="covered" data-hits="10" data-linenumber="50">
+ <span class="hits">10</span>
+
+ <code class="ruby"> value = params[key.to_sym].nil? ? setting.value : params[key.to_sym]</code>
+ </li>
+
+ <li class="covered" data-hits="10" data-linenumber="51">
+ <span class="hits">10</span>
+
+ <code class="ruby"> html = ""</code>
+ </li>
+
+ <li class="covered" data-hits="10" data-linenumber="52">
+ <span class="hits">10</span>
+
+ <code class="ruby"> if setting.boolean?</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="53">
+ <span class="hits">1</span>
+
+ <code class="ruby"> html << hidden_field_tag(name, 0)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="54">
+ <span class="hits">1</span>
+
+ <code class="ruby"> html << check_box_tag(name, 1, value, :class => 'setting', :id => domkey)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="55">
+ <span class="hits">1</span>
+
+ <code class="ruby"> html << content_tag(:label, title.html_safe, :class => 'checkbox', :for => domkey)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="56">
+
+
+ <code class="ruby"> elsif setting.selector?</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="57">
+ <span class="hits">4</span>
+
+ <code class="ruby"> html << content_tag(:label, title.html_safe, :for => domkey)</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="58">
+ <span class="hits">4</span>
+
+ <code class="ruby"> html << select_tag(name, options_for_select(setting.definition.selection, value), :class => 'setting', :id => domkey)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="59">
+
+
+ <code class="ruby"> else</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="60">
+ <span class="hits">5</span>
+
+ <code class="ruby"> html << content_tag(:label, title.html_safe, :for => domkey)</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="61">
+ <span class="hits">5</span>
+
+ <code class="ruby"> html << text_field_tag(name, value, :class => 'textbox', :id => domkey)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="62">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="10" data-linenumber="63">
+ <span class="hits">10</span>
+
+ <code class="ruby"> if setting.errors[:value].present?</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="64">
+
+
+ <code class="ruby"> html << content_tag(:span, [setting.errors[:value]].flatten.first, :class => 'error')</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="65">
+
+
+ <code class="ruby"> html = content_tag(:span, html.html_safe, :class => "error-with-field")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="66">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="10" data-linenumber="67">
+ <span class="hits">10</span>
+
+ <code class="ruby"> html.html_safe</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="68">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="69">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="70">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def setting_for(key)</code>
+ </li>
+
+ <li class="covered" data-hits="60" data-linenumber="71">
+ <span class="hits">60</span>
+
+ <code class="ruby"> @trusty_config ||= {} # normally initialized in Admin::ConfigurationController</code>
+ </li>
+
+ <li class="covered" data-hits="60" data-linenumber="72">
+ <span class="hits">60</span>
+
+ <code class="ruby"> @trusty_config[key] ||= TrustyCms.config.find_or_initialize_by(key: key)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="73">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="74">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="75">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def definition_for(key)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="76">
+
+
+ <code class="ruby"> if setting = setting_for(key)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="77">
+
+
+ <code class="ruby"> setting.definition</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="78">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="79">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="80">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="81">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="a60b971bc58b9cda32471f0b9507a73bde5812c2">
+ <div class="header">
+ <h3>app/helpers/admin/extensions_helper.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>1</b> relevant lines.
+ <span class="green"><b>1</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">module Admin::ExtensionsHelper</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="2">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="f1b71910ed03a14a4fc4cce2c151914e870c1588">
+ <div class="header">
+ <h3>app/helpers/admin/layouts_helper.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>1</b> relevant lines.
+ <span class="green"><b>1</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">module Admin::LayoutsHelper</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="2">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="3">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="352ca55a4f63d046b73dfeec822cb6b55487185d">
+ <div class="header">
+ <h3>app/helpers/admin/node_helper.rb</h3>
+ <h4><span class="red">60.71 %</span> covered</h4>
+ <div>
+ <b>56</b> relevant lines.
+ <span class="green"><b>34</b> lines covered</span> and
+ <span class="red"><b>22</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">module Admin::NodeHelper</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="2">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def render_nodes(page, starting_index, parent_index = nil, simple = false)</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="4">
+ <span class="hits">5</span>
+
+ <code class="ruby"> @rendered_html = ""</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="5">
+ <span class="hits">5</span>
+
+ <code class="ruby"> render_node page, starting_index, parent_index, simple</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="6">
+ <span class="hits">5</span>
+
+ <code class="ruby"> @rendered_html</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="7">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="8">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="9">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def render_node(page, index, parent_index = nil, simple = false)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="10">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="11">
+ <span class="hits">5</span>
+
+ <code class="ruby"> @current_node = prepare_page(page)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="12">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="13">
+ <span class="hits">5</span>
+
+ <code class="ruby"> @rendered_html += (render :partial => 'admin/pages/node',</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="14">
+
+
+ <code class="ruby"> :locals => {level: index, index: index, parent_index: parent_index,</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="15">
+ <span class="hits">5</span>
+
+ <code class="ruby"> page: page, simple: simple, branch: (page.children.count > 0) })</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="16">
+ <span class="hits">5</span>
+
+ <code class="ruby"> index</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="17">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="18">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="19">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def prepare_page(page)</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="20">
+ <span class="hits">5</span>
+
+ <code class="ruby"> page.extend MenuRenderer</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="21">
+ <span class="hits">5</span>
+
+ <code class="ruby"> page.view = self</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="22">
+ <span class="hits">5</span>
+
+ <code class="ruby"> if page.additional_menu_features?</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="23">
+
+
+ <code class="ruby"> page.extend(*page.menu_renderer_modules)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="24">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="25">
+ <span class="hits">5</span>
+
+ <code class="ruby"> page</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="26">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="27">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="28">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def homepage</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="29">
+
+
+ <code class="ruby"> @homepage ||= Page.find_by_parent_id(nil)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="30">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="31">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="32">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def show_all?</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="33">
+
+
+ <code class="ruby"> controller.action_name == 'remove'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="34">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="35">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="36">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def expanded_rows</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="37">
+
+
+ <code class="ruby"> unless @expanded_rows</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="38">
+
+
+ <code class="ruby"> @expanded_rows = case</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="39">
+
+
+ <code class="ruby"> when rows = cookies[:expanded_rows]</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="40">
+
+
+ <code class="ruby"> rows.split(',').map { |x| Integer(x) rescue nil }.compact</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="41">
+
+
+ <code class="ruby"> else</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="42">
+
+
+ <code class="ruby"> []</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="43">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="44">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="45">
+
+
+ <code class="ruby"> if homepage and !@expanded_rows.include?(homepage.id)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="46">
+
+
+ <code class="ruby"> @expanded_rows << homepage.id</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="47">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="48">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="49">
+
+
+ <code class="ruby"> @expanded_rows</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="50">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="51">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="52">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def expanded</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="53">
+
+
+ <code class="ruby"> show_all? || expanded_rows.include?(@current_node.id)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="54">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="55">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="56">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def padding_left(level)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="57">
+
+
+ <code class="ruby"> (level * 23) + 9</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="58">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="59">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="60">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def children_class</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="61">
+
+
+ <code class="ruby"> unless @current_node.children.empty?</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="62">
+
+
+ <code class="ruby"> if expanded</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="63">
+
+
+ <code class="ruby"> " children_visible"</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="64">
+
+
+ <code class="ruby"> else</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="65">
+
+
+ <code class="ruby"> " children_hidden"</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="66">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="67">
+
+
+ <code class="ruby"> else</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="68">
+
+
+ <code class="ruby"> " no_children"</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="69">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="70">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="71">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="72">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def virtual_class</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="73">
+
+
+ <code class="ruby"> @current_node.virtual? ? " virtual": ""</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="74">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="75">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="76">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def expander(level)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="77">
+
+
+ <code class="ruby"> unless @current_node.children.empty? or level == 0</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="78">
+
+
+ <code class="ruby"> image((expanded ? "collapse" : "expand"),</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="79">
+
+
+ <code class="ruby"> :class => "expander", :alt => 'toggle children',</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="80">
+
+
+ <code class="ruby"> :title => '')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="81">
+
+
+ <code class="ruby"> else</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="82">
+
+
+ <code class="ruby"> ""</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="83">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="84">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="85">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="86">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def icon</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="87">
+ <span class="hits">5</span>
+
+ <code class="ruby"> icon_name = @current_node.virtual? ? 'virtual_page' : 'page'</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="88">
+ <span class="hits">5</span>
+
+ <code class="ruby"> image(icon_name, :class => "icon", :alt => '', :title => '')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="89">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="90">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="91">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def node_title</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="92">
+ <span class="hits">5</span>
+
+ <code class="ruby"> %{<span class="title">#{ h(@current_node.title) }</span>}.html_safe</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="93">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="94">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="95">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def page_type</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="96">
+ <span class="hits">4</span>
+
+ <code class="ruby"> display_name = @current_node.class.display_name</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="97">
+ <span class="hits">4</span>
+
+ <code class="ruby"> if display_name == 'Page'</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="98">
+ <span class="hits">4</span>
+
+ <code class="ruby"> ""</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="99">
+
+
+ <code class="ruby"> else</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="100">
+
+
+ <code class="ruby"> %{<span class="info">(#{ h(display_name) })</span>}.html_safe</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="101">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="102">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="103">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="104">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def spinner</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="105">
+ <span class="hits">4</span>
+
+ <code class="ruby"> image('spinner.gif',</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="106">
+
+
+ <code class="ruby"> :class => 'busy', :id => "busy_#{@current_node.id}",</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="107">
+
+
+ <code class="ruby"> :alt => "", :title => "",</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="108">
+
+
+ <code class="ruby"> :style => 'display: none;')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="109">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="110">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="07cdad2482cd19a92b6c1e2ed1c9d59c7b7b0a2a">
+ <div class="header">
+ <h3>app/helpers/admin/pages_helper.rb</h3>
+ <h4><span class="red">75.0 %</span> covered</h4>
+ <div>
+ <b>16</b> relevant lines.
+ <span class="green"><b>12</b> lines covered</span> and
+ <span class="red"><b>4</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">module Admin::PagesHelper</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="2">
+ <span class="hits">1</span>
+
+ <code class="ruby"> include Admin::NodeHelper</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+
+ <code class="ruby"> include Admin::ReferencesHelper</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="4">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="5">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def class_of_page</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="6">
+
+
+ <code class="ruby"> @page.class</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="7">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="8">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="9">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def filter</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="10">
+
+
+ <code class="ruby"> @page.parts.first.filter if @page.parts.respond_to?(:any?) && @page.parts.any?</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="11">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="12">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="13">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def meta_errors?</code>
+ </li>
+
+ <li class="covered" data-hits="10" data-linenumber="14">
+ <span class="hits">10</span>
+
+ <code class="ruby"> !!(@page.errors[:slug] or @page.errors[:breadcrumb])</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="15">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="16">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="17">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def default_filter_name</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="18">
+
+
+ <code class="ruby"> @page.parts.empty? ? "" : @page.parts[0].filter_id</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="19">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="20">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="21">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def status_to_display</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="22">
+ <span class="hits">5</span>
+
+ <code class="ruby"> @page.status_id = 100 if @page.status_id == 90</code>
+ </li>
+
+ <li class="covered" data-hits="25" data-linenumber="23">
+ <span class="hits">25</span>
+
+ <code class="ruby"> @display_status = Status.selectable.map{ |s| [I18n.translate(s.name.downcase), s.id] }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="24">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="25">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="26">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def clean_page_description(page)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="27">
+
+
+ <code class="ruby"> page.description.to_s.strip.gsub(/\t/,'').gsub(/\s+/,' ')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="28">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="29">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="781d9751547430b5f53e45c0a93bbe1399c262fa">
+ <div class="header">
+ <h3>app/helpers/admin/preferences_helper.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>1</b> relevant lines.
+ <span class="green"><b>1</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">module Admin::PreferencesHelper</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="2">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="3">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="f67b3ce4ba5dfcbf735dc48d7e441eb59a706783">
+ <div class="header">
+ <h3>app/helpers/admin/references_helper.rb</h3>
+ <h4><span class="red">31.82 %</span> covered</h4>
+ <div>
+ <b>22</b> relevant lines.
+ <span class="green"><b>7</b> lines covered</span> and
+ <span class="red"><b>15</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">require "RedCloth"</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="2">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+
+ <code class="ruby">module Admin::ReferencesHelper</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="4">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def tag_reference</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="5">
+
+
+ <code class="ruby"> String.new.tap do |output|</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="6">
+
+
+ <code class="ruby"> class_of_page.tag_descriptions.sort.each do |tag_name, description|</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="7">
+
+
+ <code class="ruby"> value = t("desc.#{tag_name.gsub(':','-')}").match('desc') ? description : t("desc.#{tag_name.gsub(':','-')}")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="8">
+
+
+ <code class="ruby"> output << render(:partial => "admin/references/tag_reference.haml",</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="9">
+
+
+ <code class="ruby"> :locals => {:tag_name => tag_name,</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="10">
+
+
+ <code class="ruby"> :description => RedCloth.new(TrustyCms::Taggable::Util.strip_leading_whitespace(value)).to_html</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="11">
+
+
+ <code class="ruby"> })</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="12">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="13">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="14">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="15">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="16">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def filter_reference</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="17">
+
+
+ <code class="ruby"> unless filter.blank?</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="18">
+
+
+ <code class="ruby"> if filter.description.blank?</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="19">
+
+
+ <code class="ruby"> "There is no documentation on this filter."</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="20">
+
+
+ <code class="ruby"> else</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="21">
+
+
+ <code class="ruby"> filter.description</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="22">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="23">
+
+
+ <code class="ruby"> else</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="24">
+
+
+ <code class="ruby"> "There is no filter on the current page part."</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="25">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="26">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="27">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="28">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def _display_name</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="29">
+
+
+ <code class="ruby"> case params[:type]</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="30">
+
+
+ <code class="ruby"> when 'filters'</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="31">
+
+
+ <code class="ruby"> filter ? filter.filter_name : t('select.none')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="32">
+
+
+ <code class="ruby"> when 'tags'</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="33">
+
+
+ <code class="ruby"> class_of_page.display_name</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="34">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="35">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="36">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="37">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def filter</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="38">
+
+
+ <code class="ruby"> @filter ||= begin</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="39">
+
+
+ <code class="ruby"> TextFilter.find_descendant(params[:filter_name])</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="40">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="41">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="42">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="43">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def class_of_page</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="44">
+
+
+ <code class="ruby"> @page_class ||= (params[:class_name].blank? ? 'Page' : params[:class_name]).constantize</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="45">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="46">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
<div class="source_table" id="024a60096d1599d436568bc78004ef69dd2dbf20">
<div class="header">
<h3>app/helpers/admin/regions_helper.rb</h3>
- <h4><span class="red">15.79 %</span> covered</h4>
+ <h4><span class="green">94.74 %</span> covered</h4>
<div>
<b>19</b> relevant lines.
- <span class="green"><b>3</b> lines covered</span> and
- <span class="red"><b>16</b> lines missed.</span>
+ <span class="green"><b>18</b> lines covered</span> and
+ <span class="red"><b>1</b> lines missed.</span>
</div>
</div>
<pre>
<ol>
@@ -1068,73 +7068,73 @@
<span class="hits">1</span>
<code class="ruby"> def render_region(region, options={}, &block)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="3">
+ <li class="covered" data-hits="287" data-linenumber="3">
+ <span class="hits">287</span>
-
<code class="ruby"> lazy_initialize_region_set</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="4">
+ <li class="covered" data-hits="287" data-linenumber="4">
+ <span class="hits">287</span>
-
<code class="ruby"> default_partials = TrustyCms::AdminUI::RegionPartials.new(self)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="5">
+ <li class="covered" data-hits="287" data-linenumber="5">
+ <span class="hits">287</span>
-
<code class="ruby"> if block_given?</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="6">
+ <li class="covered" data-hits="140" data-linenumber="6">
+ <span class="hits">140</span>
-
<code class="ruby"> block.call(default_partials)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="7">
+ <li class="covered" data-hits="140" data-linenumber="7">
+ <span class="hits">140</span>
-
<code class="ruby"> (options[:locals] ||= {}).merge!(:defaults => default_partials)</code>
</li>
<li class="never" data-hits="" data-linenumber="8">
<code class="ruby"> end</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="9">
+ <li class="covered" data-hits="287" data-linenumber="9">
+ <span class="hits">287</span>
-
<code class="ruby"> output = @region_set[region].compact.map do |partial|</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="10">
+ <li class="covered" data-hits="230" data-linenumber="10">
+ <span class="hits">230</span>
-
<code class="ruby"> begin</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="11">
+ <li class="covered" data-hits="230" data-linenumber="11">
+ <span class="hits">230</span>
-
<code class="ruby"> render options.merge(:partial => partial)</code>
</li>
<li class="never" data-hits="" data-linenumber="12">
<code class="ruby"> rescue ::ActionView::MissingTemplate # couldn't find template</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="13">
+ <li class="covered" data-hits="230" data-linenumber="13">
+ <span class="hits">230</span>
-
<code class="ruby"> default_partials[partial]</code>
</li>
<li class="never" data-hits="" data-linenumber="14">
@@ -1158,19 +7158,19 @@
<code class="ruby"> end.join.html_safe</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="18">
+ <li class="covered" data-hits="287" data-linenumber="18">
+ <span class="hits">287</span>
-
<code class="ruby"> Rails.logger.error(output)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="19">
+ <li class="covered" data-hits="287" data-linenumber="19">
+ <span class="hits">287</span>
-
<code class="ruby"> block_given? ? concat(output) : output</code>
</li>
<li class="never" data-hits="" data-linenumber="20">
@@ -1188,31 +7188,31 @@
<span class="hits">1</span>
<code class="ruby"> def lazy_initialize_region_set</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="23">
+ <li class="covered" data-hits="287" data-linenumber="23">
+ <span class="hits">287</span>
-
<code class="ruby"> unless @region_set</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="24">
+ <li class="covered" data-hits="50" data-linenumber="24">
+ <span class="hits">50</span>
-
<code class="ruby"> @controller_name ||= @_controller.controller_name</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="25">
+ <li class="covered" data-hits="50" data-linenumber="25">
+ <span class="hits">50</span>
-
<code class="ruby"> @template_name ||= @_controller.template_name</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="26">
+ <li class="covered" data-hits="50" data-linenumber="26">
+ <span class="hits">50</span>
-
<code class="ruby"> @region_set = admin.send(@controller_name).send(@template_name)</code>
</li>
<li class="never" data-hits="" data-linenumber="27">
@@ -1234,18 +7234,144 @@
</ol>
</pre>
</div>
+ <div class="source_table" id="c36f97396afab7acde2fbe5a063b597d0b40f848">
+ <div class="header">
+ <h3>app/helpers/admin/resource_helper.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>1</b> relevant lines.
+ <span class="green"><b>1</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">module Admin::ResourceHelper</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="2">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="b5b66cc2c9ceed019da04d236c18a819343756d7">
+ <div class="header">
+ <h3>app/helpers/admin/users_helper.rb</h3>
+ <h4><span class="red">33.33 %</span> covered</h4>
+ <div>
+ <b>6</b> relevant lines.
+ <span class="green"><b>2</b> lines covered</span> and
+ <span class="red"><b>4</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">module Admin::UsersHelper</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="2">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def roles(user)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="3">
+
+
+ <code class="ruby"> roles = []</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="4">
+
+
+ <code class="ruby"> roles << I18n.t('admin') if user.admin?</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="5">
+
+
+ <code class="ruby"> roles << I18n.t('designer') if user.designer?</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="6">
+
+
+ <code class="ruby"> roles.join(', ')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="7">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="8">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="84bf416885112758ab122c8fd5353d9486d18756">
+ <div class="header">
+ <h3>app/helpers/admin/welcome_helper.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>1</b> relevant lines.
+ <span class="green"><b>1</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">module Admin::WelcomeHelper</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="2">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
<div class="source_table" id="e8ceba241b247e5465fc091266d42235281b188b">
<div class="header">
<h3>app/helpers/application_helper.rb</h3>
- <h4><span class="red">28.57 %</span> covered</h4>
+ <h4><span class="yellow">80.16 %</span> covered</h4>
<div>
<b>126</b> relevant lines.
- <span class="green"><b>36</b> lines covered</span> and
- <span class="red"><b>90</b> lines missed.</span>
+ <span class="green"><b>101</b> lines covered</span> and
+ <span class="red"><b>25</b> lines missed.</span>
</div>
</div>
<pre>
<ol>
@@ -1272,13 +7398,13 @@
<span class="hits">1</span>
<code class="ruby"> def trusty_config</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="5">
+ <li class="covered" data-hits="150" data-linenumber="5">
+ <span class="hits">150</span>
-
<code class="ruby"> TrustyCms::Config</code>
</li>
<li class="never" data-hits="" data-linenumber="6">
@@ -1296,13 +7422,13 @@
<span class="hits">1</span>
<code class="ruby"> def default_page_title</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="9">
+ <li class="covered" data-hits="75" data-linenumber="9">
+ <span class="hits">75</span>
-
<code class="ruby"> title + ' - ' + subtitle</code>
</li>
<li class="never" data-hits="" data-linenumber="10">
@@ -1320,13 +7446,13 @@
<span class="hits">1</span>
<code class="ruby"> def title</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="13">
+ <li class="covered" data-hits="75" data-linenumber="13">
+ <span class="hits">75</span>
-
<code class="ruby"> trusty_config['admin.title'] || 'Trusty CMS'</code>
</li>
<li class="never" data-hits="" data-linenumber="14">
@@ -1344,13 +7470,13 @@
<span class="hits">1</span>
<code class="ruby"> def subtitle</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="17">
+ <li class="covered" data-hits="75" data-linenumber="17">
+ <span class="hits">75</span>
-
<code class="ruby"> trusty_config['admin.subtitle'] || 'Publishing for Small Teams'</code>
</li>
<li class="never" data-hits="" data-linenumber="18">
@@ -1368,13 +7494,13 @@
<span class="hits">1</span>
<code class="ruby"> def logged_in?</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="21">
+ <li class="covered" data-hits="75" data-linenumber="21">
+ <span class="hits">75</span>
-
<code class="ruby"> !current_user.nil?</code>
</li>
<li class="never" data-hits="" data-linenumber="22">
@@ -1392,13 +7518,13 @@
<span class="hits">1</span>
<code class="ruby"> def onsubmit_status(model)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="25">
+ <li class="covered" data-hits="2" data-linenumber="25">
+ <span class="hits">2</span>
-
<code class="ruby"> model.new_record? ? t('creating_status', :model => t(model.class.name.downcase)) : "#{I18n.t('saving_changes')}&#8230;"</code>
</li>
<li class="never" data-hits="" data-linenumber="26">
@@ -1416,25 +7542,25 @@
<span class="hits">1</span>
<code class="ruby"> def save_model_button(model, options = {})</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="29">
+ <li class="covered" data-hits="8" data-linenumber="29">
+ <span class="hits">8</span>
-
<code class="ruby"> model_name = model.class.name.underscore</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="30">
+ <li class="covered" data-hits="8" data-linenumber="30">
+ <span class="hits">8</span>
-
<code class="ruby"> human_model_name = model_name.humanize.titlecase</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="31">
+ <li class="covered" data-hits="8" data-linenumber="31">
+ <span class="hits">8</span>
-
<code class="ruby"> options[:label] ||= model.new_record? ?</code>
</li>
<li class="never" data-hits="" data-linenumber="32">
@@ -1446,25 +7572,25 @@
<code class="ruby"> t('buttons.save_changes', :default => 'Save Changes')</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="34">
+ <li class="covered" data-hits="8" data-linenumber="34">
+ <span class="hits">8</span>
-
<code class="ruby"> options[:class] ||= "button"</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="35">
+ <li class="covered" data-hits="8" data-linenumber="35">
+ <span class="hits">8</span>
-
<code class="ruby"> options[:accesskey] ||= 'S'</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="36">
+ <li class="covered" data-hits="8" data-linenumber="36">
+ <span class="hits">8</span>
-
<code class="ruby"> submit_tag options.delete(:label), options</code>
</li>
<li class="never" data-hits="" data-linenumber="37">
@@ -1482,13 +7608,13 @@
<span class="hits">1</span>
<code class="ruby"> def save_model_and_continue_editing_button(model)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="40">
+ <li class="covered" data-hits="7" data-linenumber="40">
+ <span class="hits">7</span>
-
<code class="ruby"> submit_tag t('buttons.save_and_continue'), :name => 'continue', :class => 'button', :accesskey => "s"</code>
</li>
<li class="never" data-hits="" data-linenumber="41">
@@ -1506,13 +7632,13 @@
<span class="hits">1</span>
<code class="ruby"> def current_item?(item)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="44">
+ <li class="covered" data-hits="140" data-linenumber="44">
+ <span class="hits">140</span>
-
<code class="ruby"> if item.tab && item.tab.many? {|i| current_url?(i.relative_url) }</code>
</li>
<li class="never" data-hits="" data-linenumber="45">
@@ -1530,13 +7656,13 @@
<code class="ruby"> else</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="48">
+ <li class="covered" data-hits="28" data-linenumber="48">
+ <span class="hits">28</span>
-
<code class="ruby"> current_url?(item.relative_url)</code>
</li>
<li class="never" data-hits="" data-linenumber="49">
@@ -1560,19 +7686,19 @@
<span class="hits">1</span>
<code class="ruby"> def current_tab?(tab)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="53">
+ <li class="covered" data-hits="417" data-linenumber="53">
+ <span class="hits">417</span>
-
<code class="ruby"> @current_tab ||= tab if tab.any? {|item| current_url?(item.relative_url) }</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="54">
+ <li class="covered" data-hits="145" data-linenumber="54">
+ <span class="hits">145</span>
-
<code class="ruby"> @current_tab == tab</code>
</li>
<li class="never" data-hits="" data-linenumber="55">
@@ -1590,13 +7716,13 @@
<span class="hits">1</span>
<code class="ruby"> def current_url?(options)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="58">
+ <li class="covered" data-hits="412" data-linenumber="58">
+ <span class="hits">412</span>
-
<code class="ruby"> url = case options</code>
</li>
<li class="never" data-hits="" data-linenumber="59">
@@ -1614,13 +7740,13 @@
<code class="ruby"> else</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="62">
+ <li class="covered" data-hits="412" data-linenumber="62">
+ <span class="hits">412</span>
-
<code class="ruby"> options.to_s</code>
</li>
<li class="never" data-hits="" data-linenumber="63">
@@ -1632,13 +7758,13 @@
<code class="ruby"> #TODO: look for other instances of request_uri</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="65">
+ <li class="covered" data-hits="412" data-linenumber="65">
+ <span class="hits">412</span>
-
<code class="ruby"> request.original_fullpath =~ Regexp.new('^' + Regexp.quote(clean(url)))</code>
</li>
<li class="never" data-hits="" data-linenumber="66">
@@ -1656,19 +7782,19 @@
<span class="hits">1</span>
<code class="ruby"> def clean(url)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="69">
+ <li class="covered" data-hits="412" data-linenumber="69">
+ <span class="hits">412</span>
-
<code class="ruby"> uri = URI.parse(url)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="70">
+ <li class="covered" data-hits="412" data-linenumber="70">
+ <span class="hits">412</span>
-
<code class="ruby"> uri.path.gsub(%r{/+}, '/').gsub(%r{/$}, '')</code>
</li>
<li class="never" data-hits="" data-linenumber="71">
@@ -1734,13 +7860,13 @@
<span class="hits">1</span>
<code class="ruby"> def admin?</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="82">
+ <li class="covered" data-hits="5" data-linenumber="82">
+ <span class="hits">5</span>
-
<code class="ruby"> current_user and current_user.admin?</code>
</li>
<li class="never" data-hits="" data-linenumber="83">
@@ -1782,67 +7908,67 @@
<span class="hits">1</span>
<code class="ruby"> def updated_stamp(model)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="90">
+ <li class="covered" data-hits="7" data-linenumber="90">
+ <span class="hits">7</span>
-
<code class="ruby"> unless model.new_record?</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="91">
+ <li class="covered" data-hits="2" data-linenumber="91">
+ <span class="hits">2</span>
-
<code class="ruby"> updated_by = (model.updated_by || model.created_by)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="92">
+ <li class="covered" data-hits="2" data-linenumber="92">
+ <span class="hits">2</span>
-
<code class="ruby"> name = updated_by ? updated_by.name : nil</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="93">
+ <li class="covered" data-hits="2" data-linenumber="93">
+ <span class="hits">2</span>
-
<code class="ruby"> time = (model.updated_at || model.created_at)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="94">
+ <li class="covered" data-hits="2" data-linenumber="94">
+ <span class="hits">2</span>
-
<code class="ruby"> if name or time</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="95">
+ <li class="covered" data-hits="2" data-linenumber="95">
+ <span class="hits">2</span>
-
<code class="ruby"> html = %{<p class="updated_line">#{t('timestamp.last_updated')} }</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="96">
+ <li class="covered" data-hits="2" data-linenumber="96">
+ <span class="hits">2</span>
-
<code class="ruby"> html << %{#{t('timestamp.by')} <strong>#{name}</strong> } if name</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="97">
+ <li class="covered" data-hits="2" data-linenumber="97">
+ <span class="hits">2</span>
-
<code class="ruby"> html << %{#{t('timestamp.at')} #{timestamp(time)}} if time</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="98">
+ <li class="covered" data-hits="2" data-linenumber="98">
+ <span class="hits">2</span>
-
<code class="ruby"> html << %{</p>}</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="99">
+ <li class="covered" data-hits="2" data-linenumber="99">
+ <span class="hits">2</span>
-
<code class="ruby"> html.html_safe</code>
</li>
<li class="never" data-hits="" data-linenumber="100">
@@ -1878,13 +8004,13 @@
<code class="ruby"> # time.strftime("%I:%M %p on %B %e, %Y").sub("AM", 'am').sub("PM", 'pm')</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="106">
+ <li class="covered" data-hits="2" data-linenumber="106">
+ <span class="hits">2</span>
-
<code class="ruby"> I18n.localize(time, :format => :timestamp)</code>
</li>
<li class="never" data-hits="" data-linenumber="107">
@@ -1962,13 +8088,13 @@
<span class="hits">1</span>
<code class="ruby"> def meta_errors?</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="120">
+ <li class="covered" data-hits="4" data-linenumber="120">
+ <span class="hits">4</span>
-
<code class="ruby"> false</code>
</li>
<li class="never" data-hits="" data-linenumber="121">
@@ -1986,13 +8112,13 @@
<span class="hits">1</span>
<code class="ruby"> def meta_label</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="124">
+ <li class="covered" data-hits="7" data-linenumber="124">
+ <span class="hits">7</span>
-
<code class="ruby"> meta_errors? ? 'Less' : 'More'</code>
</li>
<li class="never" data-hits="" data-linenumber="125">
@@ -2010,13 +8136,13 @@
<span class="hits">1</span>
<code class="ruby"> def image(name, options = {})</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="128">
+ <li class="covered" data-hits="89" data-linenumber="128">
+ <span class="hits">89</span>
-
<code class="ruby"> image_tag(append_image_extension("admin/#{name}"), options)</code>
</li>
<li class="never" data-hits="" data-linenumber="129">
@@ -2058,13 +8184,13 @@
<span class="hits">1</span>
<code class="ruby"> def admin</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="136">
+ <li class="covered" data-hits="125" data-linenumber="136">
+ <span class="hits">125</span>
-
<code class="ruby"> TrustyCms::AdminUI.instance</code>
</li>
<li class="never" data-hits="" data-linenumber="137">
@@ -2106,13 +8232,13 @@
<span class="hits">1</span>
<code class="ruby"> def body_classes</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="144">
+ <li class="covered" data-hits="108" data-linenumber="144">
+ <span class="hits">108</span>
-
<code class="ruby"> @body_classes ||= []</code>
</li>
<li class="never" data-hits="" data-linenumber="145">
@@ -2130,13 +8256,13 @@
<span class="hits">1</span>
<code class="ruby"> def nav_tabs</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="148">
+ <li class="covered" data-hits="49" data-linenumber="148">
+ <span class="hits">49</span>
-
<code class="ruby"> admin.nav</code>
</li>
<li class="never" data-hits="" data-linenumber="149">
@@ -2154,13 +8280,13 @@
<span class="hits">1</span>
<code class="ruby"> def translate_with_default(name)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="152">
+ <li class="covered" data-hits="173" data-linenumber="152">
+ <span class="hits">173</span>
-
<code class="ruby"> t(name.underscore.downcase, :default => name)</code>
</li>
<li class="never" data-hits="" data-linenumber="153">
@@ -2178,13 +8304,13 @@
<span class="hits">1</span>
<code class="ruby"> def available_locales_select</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="156">
+ <li class="covered" data-hits="1" data-linenumber="156">
+ <span class="hits">1</span>
-
<code class="ruby"> [[t('select.default'),'']] + TrustyCms::AvailableLocales.locales</code>
</li>
<li class="never" data-hits="" data-linenumber="157">
@@ -2202,19 +8328,19 @@
<span class="hits">1</span>
<code class="ruby"> def stylesheet_overrides</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="160">
+ <li class="covered" data-hits="75" data-linenumber="160">
+ <span class="hits">75</span>
-
<code class="ruby"> overrides = []</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="161">
+ <li class="covered" data-hits="75" data-linenumber="161">
+ <span class="hits">75</span>
-
<code class="ruby"> if File.exist?("#{Rails.root}/public/stylesheets/admin/overrides.css") || File.exist?("#{Rails.root}/public/stylesheets/sass/admin/overrides.sass")</code>
</li>
<li class="missed" data-hits="0" data-linenumber="162">
@@ -2226,13 +8352,13 @@
<code class="ruby"> end</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="164">
+ <li class="covered" data-hits="75" data-linenumber="164">
+ <span class="hits">75</span>
-
<code class="ruby"> overrides</code>
</li>
<li class="never" data-hits="" data-linenumber="165">
@@ -2250,19 +8376,19 @@
<span class="hits">1</span>
<code class="ruby"> def javascript_overrides</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="168">
+ <li class="covered" data-hits="75" data-linenumber="168">
+ <span class="hits">75</span>
-
<code class="ruby"> overrides = []</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="169">
+ <li class="covered" data-hits="75" data-linenumber="169">
+ <span class="hits">75</span>
-
<code class="ruby"> if File.exist?("#{Rails.root}/public/javascripts/admin/overrides.js")</code>
</li>
<li class="missed" data-hits="0" data-linenumber="170">
@@ -2274,13 +8400,13 @@
<code class="ruby"> end</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="172">
+ <li class="covered" data-hits="75" data-linenumber="172">
+ <span class="hits">75</span>
-
<code class="ruby"> overrides</code>
</li>
<li class="never" data-hits="" data-linenumber="173">
@@ -2316,13 +8442,13 @@
<code class="ruby"> # Default to highest rating. Rating can be one of G, PG, R X.</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="179">
+ <li class="covered" data-hits="6" data-linenumber="179">
+ <span class="hits">6</span>
-
<code class="ruby"> options[:rating] ||= "G"</code>
</li>
<li class="never" data-hits="" data-linenumber="180">
@@ -2334,13 +8460,13 @@
<code class="ruby"> # Default size of the image.</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="182">
+ <li class="covered" data-hits="6" data-linenumber="182">
+ <span class="hits">6</span>
-
<code class="ruby"> options[:size] ||= "32px"</code>
</li>
<li class="never" data-hits="" data-linenumber="183">
@@ -2358,37 +8484,37 @@
<code class="ruby"> # or when an image exceeds the rating parameter.</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="186">
+ <li class="covered" data-hits="6" data-linenumber="186">
+ <span class="hits">6</span>
-
<code class="ruby"> local_avatar_url = "/images/admin/avatar_#{([options[:size].to_i] * 2).join('x')}.png"</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="187">
+ <li class="covered" data-hits="6" data-linenumber="187">
+ <span class="hits">6</span>
-
<code class="ruby"> default_avatar_url = "#{request.protocol}#{request.host_with_port}#{ActionController::Base.relative_url_root}#{local_avatar_url}"</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="188">
+ <li class="covered" data-hits="6" data-linenumber="188">
+ <span class="hits">6</span>
-
<code class="ruby"> options[:default] ||= default_avatar_url</code>
</li>
<li class="never" data-hits="" data-linenumber="189">
<code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="190">
+ <li class="covered" data-hits="6" data-linenumber="190">
+ <span class="hits">6</span>
-
<code class="ruby"> unless email.blank?</code>
</li>
<li class="never" data-hits="" data-linenumber="191">
@@ -2466,13 +8592,13 @@
<code class="ruby"> else</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="204">
+ <li class="covered" data-hits="6" data-linenumber="204">
+ <span class="hits">6</span>
-
<code class="ruby"> local_avatar_url</code>
</li>
<li class="never" data-hits="" data-linenumber="205">
@@ -2514,19 +8640,19 @@
<span class="hits">1</span>
<code class="ruby"> def pagination_for(list, options={})</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="212">
+ <li class="covered" data-hits="8" data-linenumber="212">
+ <span class="hits">8</span>
-
<code class="ruby"> if list.respond_to? :total_pages</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="213">
+ <li class="covered" data-hits="8" data-linenumber="213">
+ <span class="hits">8</span>
-
<code class="ruby"> options = {</code>
</li>
<li class="never" data-hits="" data-linenumber="214">
@@ -2544,31 +8670,31 @@
<code class="ruby"> }.merge(options.symbolize_keys)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="217">
+ <li class="covered" data-hits="8" data-linenumber="217">
+ <span class="hits">8</span>
-
<code class="ruby"> depaginate = options.delete(:depaginate) # supply :depaginate => false to omit the 'show all' link</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="218">
+ <li class="covered" data-hits="8" data-linenumber="218">
+ <span class="hits">8</span>
-
<code class="ruby"> depagination_limit = options.delete(:max_per_page) # supply :max_per_page => false to include the 'show all' link no matter how large the collection</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="219">
+ <li class="covered" data-hits="8" data-linenumber="219">
+ <span class="hits">8</span>
-
<code class="ruby"> html = will_paginate(list, will_paginate_options.merge(options))</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="220">
+ <li class="covered" data-hits="8" data-linenumber="220">
+ <span class="hits">8</span>
-
<code class="ruby"> if depaginate && list.total_pages > 1 && (!depagination_limit.blank? || list.total_entries <= depagination_limit.to_i)</code>
</li>
<li class="missed" data-hits="0" data-linenumber="221">
@@ -2592,13 +8718,13 @@
<code class="ruby"> end</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="225">
+ <li class="covered" data-hits="8" data-linenumber="225">
+ <span class="hits">8</span>
-
<code class="ruby"> html</code>
</li>
<li class="never" data-hits="" data-linenumber="226">
@@ -2634,31 +8760,31 @@
<span class="hits">1</span>
<code class="ruby"> def append_image_extension(name)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="232">
+ <li class="covered" data-hits="89" data-linenumber="232">
+ <span class="hits">89</span>
-
<code class="ruby"> unless name =~ /\.(.*?)$/</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="233">
+ <li class="covered" data-hits="75" data-linenumber="233">
+ <span class="hits">75</span>
-
<code class="ruby"> name + '.png'</code>
</li>
<li class="never" data-hits="" data-linenumber="234">
<code class="ruby"> else</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="235">
+ <li class="covered" data-hits="14" data-linenumber="235">
+ <span class="hits">14</span>
-
<code class="ruby"> name</code>
</li>
<li class="never" data-hits="" data-linenumber="236">
@@ -2686,10 +8812,40 @@
</ol>
</pre>
</div>
+ <div class="source_table" id="a39d78c4fc93191de03915ecd09328b64f41b587">
+ <div class="header">
+ <h3>app/helpers/site_helper.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>1</b> relevant lines.
+ <span class="green"><b>1</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">module SiteHelper</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="2">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
<div class="source_table" id="24a478dc81cb312b20b3b6ff5d59f560307249ae">
<div class="header">
<h3>app/models/layout.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
<div>
@@ -2724,12 +8880,12 @@
<code class="ruby"> # Default Order</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="5">
- <span class="hits">1</span>
+ <li class="covered" data-hits="28" data-linenumber="5">
+ <span class="hits">28</span>
<code class="ruby"> default_scope {order("name")}</code>
</li>
<li class="never" data-hits="" data-linenumber="6">
@@ -2800,18 +8956,1392 @@
</ol>
</pre>
</div>
+ <div class="source_table" id="0a4dd54b5173ef00862c0de3249f9062548ae0ed">
+ <div class="header">
+ <h3>app/models/menu_renderer.rb</h3>
+ <h4><span class="yellow">89.33 %</span> covered</h4>
+ <div>
+ <b>75</b> relevant lines.
+ <span class="green"><b>67</b> lines covered</span> and
+ <span class="red"><b>8</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">module MenuRenderer</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="2">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def exclude(*type_names)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="4">
+
+
+ <code class="ruby"> @excluded_class_names ||= []</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="5">
+
+
+ <code class="ruby"> @excluded_class_names.concat(type_names).uniq!</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="6">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="7">
+ <span class="hits">1</span>
+
+ <code class="ruby"> module_function :exclude</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="8">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="9">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def excluded_class_names</code>
+ </li>
+
+ <li class="covered" data-hits="12" data-linenumber="10">
+ <span class="hits">12</span>
+
+ <code class="ruby"> MenuRenderer.instance_variable_get(:@excluded_class_names)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="11">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="12">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="13">
+ <span class="hits">1</span>
+
+ <code class="ruby"> module_function :excluded_class_names</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="14">
+ <span class="hits">1</span>
+
+ <code class="ruby"> public :excluded_class_names</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="15">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="16">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def view=(val)</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="17">
+ <span class="hits">5</span>
+
+ <code class="ruby"> @view = val</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="18">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="19">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="20">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def view</code>
+ </li>
+
+ <li class="covered" data-hits="52" data-linenumber="21">
+ <span class="hits">52</span>
+
+ <code class="ruby"> @view</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="22">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="23">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="24">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def additional_menu_features?</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="25">
+ <span class="hits">5</span>
+
+ <code class="ruby"> @additional_menu_features ||= (menu_renderer_module_name != 'MenuRenderer' && Object.const_defined?(menu_renderer_module_name))</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="26">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="27">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="28">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def menu_renderer_module_name</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="29">
+ <span class="hits">5</span>
+
+ <code class="ruby"> simple_name = self.class_name.to_s.sub('Page','')</code>
+ </li>
+
+ <li class="covered" data-hits="5" data-linenumber="30">
+ <span class="hits">5</span>
+
+ <code class="ruby"> "#{simple_name}MenuRenderer"</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="31">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="32">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="33">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def menu_renderer_modules</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="34">
+
+
+ <code class="ruby"> [Object.const_get(menu_renderer_module_name)]</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="35">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="36">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="37">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def allowed_child_classes</code>
+ </li>
+
+ <li class="covered" data-hits="12" data-linenumber="38">
+ <span class="hits">12</span>
+
+ <code class="ruby"> (allowed_children_cache.to_s.split(',') - Array(excluded_class_names)).map do |name|</code>
+ </li>
+
+ <li class="covered" data-hits="24" data-linenumber="39">
+ <span class="hits">24</span>
+
+ <code class="ruby"> begin</code>
+ </li>
+
+ <li class="covered" data-hits="24" data-linenumber="40">
+ <span class="hits">24</span>
+
+ <code class="ruby"> name.constantize</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="41">
+
+
+ <code class="ruby"> rescue LoadError, NameError => _</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="42">
+
+
+ <code class="ruby"> nil</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="43">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="12" data-linenumber="44">
+ <span class="hits">12</span>
+
+ <code class="ruby"> end.compact</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="45">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="46">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="47">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="48">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def default_child_item</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="49">
+ <span class="hits">4</span>
+
+ <code class="ruby"> menu_item(default_child)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="50">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="51">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="52">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def separator_item</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="53">
+ <span class="hits">4</span>
+
+ <code class="ruby"> view.content_tag :li, '', :class => 'separator'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="54">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="55">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="56">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def child_items</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="57">
+ <span class="hits">4</span>
+
+ <code class="ruby"> (allowed_child_classes - [self.class.default_child]).map do |child|</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="58">
+ <span class="hits">4</span>
+
+ <code class="ruby"> menu_item(child)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="59">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="60">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="61">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="62">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def menu_items</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="63">
+ <span class="hits">4</span>
+
+ <code class="ruby"> [default_child_item, separator_item] + child_items</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="64">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="65">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="66">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def menu_list</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="67">
+ <span class="hits">4</span>
+
+ <code class="ruby"> view.content_tag :ul, menu_items.join.html_safe, :class => 'menu', :id => "allowed_children_#{id}"</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="68">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="69">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="70">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def remove_link</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="71">
+ <span class="hits">4</span>
+
+ <code class="ruby"> view.link_to view.image('minus') + ' ' + I18n.t('remove'), view.remove_admin_page_url(self), :class => "action"</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="72">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="73">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="74">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def remove_option</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="75">
+ <span class="hits">4</span>
+
+ <code class="ruby"> remove_link</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="76">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="77">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="78">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def add_child_disabled?</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="79">
+ <span class="hits">4</span>
+
+ <code class="ruby"> allowed_child_classes.size == 0</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="80">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="81">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="82">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def disabled_add_child_link</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="83">
+
+
+ <code class="ruby"> view.content_tag :span, view.image('plus_disabled') + ' Add Child', :class => 'action disabled'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="84">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="85">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="86">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def add_child_link</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="87">
+
+
+ <code class="ruby"> view.link_to((view.image('plus') + ' Add Child'), view.new_admin_page_child_path(self, :page_class => default_child.name), :class => "action")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="88">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="89">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="90">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def add_child_link_with_menu_hook</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="91">
+ <span class="hits">4</span>
+
+ <code class="ruby"> view.link_to((view.image('plus') + ' Add Child'), "#allowed_children_#{id}", :class => "action dropdown")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="92">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="93">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="94">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def add_child_menu</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="95">
+ <span class="hits">4</span>
+
+ <code class="ruby"> menu_list</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="96">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="97">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="98">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def add_child_link_with_menu</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="99">
+ <span class="hits">4</span>
+
+ <code class="ruby"> add_child_link_with_menu_hook + add_child_menu</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="100">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="101">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="102">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def add_child_option</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="103">
+ <span class="hits">4</span>
+
+ <code class="ruby"> if add_child_disabled?</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="104">
+
+
+ <code class="ruby"> disabled_add_child_link</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="105">
+
+
+ <code class="ruby"> else</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="106">
+ <span class="hits">4</span>
+
+ <code class="ruby"> if allowed_child_classes.size == 1</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="107">
+
+
+ <code class="ruby"> add_child_link</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="108">
+
+
+ <code class="ruby"> else</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="109">
+ <span class="hits">4</span>
+
+ <code class="ruby"> add_child_link_with_menu</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="110">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="111">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="112">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="113">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="114">
+ <span class="hits">1</span>
+
+ <code class="ruby"> private</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="115">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="116">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def clean_page_description(page_class)</code>
+ </li>
+
+ <li class="covered" data-hits="8" data-linenumber="117">
+ <span class="hits">8</span>
+
+ <code class="ruby"> page_class.description.to_s.strip.gsub(/\t/,'').gsub(/\s+/,' ')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="118">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="119">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="120">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def menu_item(child_class)</code>
+ </li>
+
+ <li class="covered" data-hits="8" data-linenumber="121">
+ <span class="hits">8</span>
+
+ <code class="ruby"> view.content_tag(:li, menu_link(child_class))</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="122">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="123">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="124">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def menu_link(child_class)</code>
+ </li>
+
+ <li class="covered" data-hits="8" data-linenumber="125">
+ <span class="hits">8</span>
+
+ <code class="ruby"> title = clean_page_description(child_class)</code>
+ </li>
+
+ <li class="covered" data-hits="8" data-linenumber="126">
+ <span class="hits">8</span>
+
+ <code class="ruby"> path = view.new_admin_page_child_path(self, :page_class => child_class.name)</code>
+ </li>
+
+ <li class="covered" data-hits="8" data-linenumber="127">
+ <span class="hits">8</span>
+
+ <code class="ruby"> text = link_text_for_child_class(child_class.name)</code>
+ </li>
+
+ <li class="covered" data-hits="8" data-linenumber="128">
+ <span class="hits">8</span>
+
+ <code class="ruby"> view.link_to(text, path, :title => title)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="129">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="130">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="131">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def link_text_for_child_class(given_class_name)</code>
+ </li>
+
+ <li class="covered" data-hits="8" data-linenumber="132">
+ <span class="hits">8</span>
+
+ <code class="ruby"> translation_key = if given_class_name == 'Page' || given_class_name.blank?</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="133">
+ <span class="hits">4</span>
+
+ <code class="ruby"> 'normal_page'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="134">
+
+
+ <code class="ruby"> else</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="135">
+ <span class="hits">4</span>
+
+ <code class="ruby"> given_class_name.sub('Page','').underscore</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="136">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="8" data-linenumber="137">
+ <span class="hits">8</span>
+
+ <code class="ruby"> fallback = given_class_name == 'Page' ? 'Page' : given_class_name.sub('Page','').titleize</code>
+ </li>
+
+ <li class="covered" data-hits="8" data-linenumber="138">
+ <span class="hits">8</span>
+
+ <code class="ruby"> I18n.t(translation_key, :default => fallback)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="139">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="140">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="802c290d3237e413d582c6e3df59d0b1a783c364">
+ <div class="header">
+ <h3>app/models/page_context.rb</h3>
+ <h4><span class="red">59.38 %</span> covered</h4>
+ <div>
+ <b>32</b> relevant lines.
+ <span class="green"><b>19</b> lines covered</span> and
+ <span class="red"><b>13</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">class PageContext < Radius::Context</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="2">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+
+ <code class="ruby"> attr_reader :page</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="4">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="5">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def initialize(page)</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="6">
+ <span class="hits">2</span>
+
+ <code class="ruby"> super</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="7">
+ <span class="hits">2</span>
+
+ <code class="ruby"> @page = page</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="8">
+ <span class="hits">2</span>
+
+ <code class="ruby"> globals.page = @page</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="9">
+ <span class="hits">2</span>
+
+ <code class="ruby"> page.tags.each do |name|</code>
+ </li>
+
+ <li class="covered" data-hits="162" data-linenumber="10">
+ <span class="hits">162</span>
+
+ <code class="ruby"> define_tag(name) { |tag_binding| page.render_tag(name, tag_binding) }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="11">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="12">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="13">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="14">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def dup</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="15">
+ <span class="hits">1</span>
+
+ <code class="ruby"> rv = self.class.new(page)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="16">
+ <span class="hits">1</span>
+
+ <code class="ruby"> rv.globals = globals.dup</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="17">
+ <span class="hits">1</span>
+
+ <code class="ruby"> rv.definitions = definitions.dup</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="18">
+ <span class="hits">1</span>
+
+ <code class="ruby"> rv</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="19">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="20">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="21">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def render_tag(name, attributes = {}, &block)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="22">
+
+
+ <code class="ruby"> binding = @tag_binding_stack.last</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="23">
+
+
+ <code class="ruby"> locals = binding ? binding.locals : globals</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="24">
+
+
+ <code class="ruby"> set_process_variables(locals.page)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="25">
+
+
+ <code class="ruby"> super</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="26">
+
+
+ <code class="ruby"> rescue Exception => e</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="27">
+
+
+ <code class="ruby"> raise e if raise_errors?</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="28">
+
+
+ <code class="ruby"> @tag_binding_stack.pop unless @tag_binding_stack.last == binding</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="29">
+
+
+ <code class="ruby"> render_error_message(e.message)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="30">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="31">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="32">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def tag_missing(name, attributes = {}, &block)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="33">
+
+
+ <code class="ruby"> super</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="34">
+
+
+ <code class="ruby"> rescue Radius::UndefinedTagError => e</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="35">
+
+
+ <code class="ruby"> raise StandardTags::TagError.new(e.message)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="36">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="37">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="38">
+ <span class="hits">1</span>
+
+ <code class="ruby"> private</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="39">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="40">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def render_error_message(message)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="41">
+
+
+ <code class="ruby"> "<div><strong>#{message}</strong></div>"</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="42">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="43">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="44">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def set_process_variables(page)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="45">
+
+
+ <code class="ruby"> page.request ||= @page.request</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="46">
+
+
+ <code class="ruby"> page.response ||= @page.response</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="47">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="48">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="49">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def raise_errors?</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="50">
+
+
+ <code class="ruby"> Rails.env != 'production'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="51">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="52">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="53">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="ee99abb95d276df654be743872e18cebe9cd7a76">
+ <div class="header">
+ <h3>app/models/page_field.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>3</b> relevant lines.
+ <span class="green"><b>3</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">class PageField < ActiveRecord::Base</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="2">
+ <span class="hits">1</span>
+
+ <code class="ruby"> attr_accessible :name, :content</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+
+ <code class="ruby"> validates_presence_of :name</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="4">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="a305f6d4632c6314af7cf73ec29de843155d1b7c">
+ <div class="header">
+ <h3>app/models/page_part.rb</h3>
+ <h4><span class="yellow">90.0 %</span> covered</h4>
+ <div>
+ <b>10</b> relevant lines.
+ <span class="green"><b>9</b> lines covered</span> and
+ <span class="red"><b>1</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">class PagePart < ActiveRecord::Base</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="2">
+ <span class="hits">1</span>
+
+ <code class="ruby"> attr_accessible :name, :filter_id, :content</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="3">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="4">
+
+
+ <code class="ruby"> # Default Order</code>
+ </li>
+
+ <li class="covered" data-hits="37" data-linenumber="5">
+ <span class="hits">37</span>
+
+ <code class="ruby"> default_scope {order("name")}</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="6">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="7">
+
+
+ <code class="ruby"> # Associations</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="8">
+ <span class="hits">1</span>
+
+ <code class="ruby"> belongs_to :page</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="9">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="10">
+
+
+ <code class="ruby"> # Validations</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="11">
+ <span class="hits">1</span>
+
+ <code class="ruby"> validates_presence_of :name</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="12">
+ <span class="hits">1</span>
+
+ <code class="ruby"> validates_length_of :name, :maximum => 100</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="13">
+ <span class="hits">1</span>
+
+ <code class="ruby"> validates_length_of :filter_id, :maximum => 25, :allow_nil => true</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="14">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="15">
+ <span class="hits">1</span>
+
+ <code class="ruby"> object_id_attr :filter, TextFilter</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="16">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="17">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def after_initialize</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="18">
+
+
+ <code class="ruby"> self.filter_id ||= TrustyCms::Config['defaults.page.filter'] if new_record?</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="19">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="20">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
<div class="source_table" id="7388d43ba91c2a28d73545a6809e9d998ff37d21">
<div class="header">
<h3>app/models/status.rb</h3>
- <h4><span class="red">77.78 %</span> covered</h4>
+ <h4><span class="green">100.0 %</span> covered</h4>
<div>
<b>18</b> relevant lines.
- <span class="green"><b>14</b> lines covered</span> and
- <span class="red"><b>4</b> lines missed.</span>
+ <span class="green"><b>18</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
</div>
</div>
<pre>
<ol>
@@ -2868,12 +10398,12 @@
<span class="hits">1</span>
<code class="ruby"> def symbol</code>
</li>
- <li class="covered" data-hits="8" data-linenumber="10">
- <span class="hits">8</span>
+ <li class="covered" data-hits="85" data-linenumber="10">
+ <span class="hits">85</span>
<code class="ruby"> @name.to_s.downcase.intern</code>
</li>
<li class="never" data-hits="" data-linenumber="11">
@@ -2892,12 +10422,12 @@
<span class="hits">1</span>
<code class="ruby"> def self.[](value)</code>
</li>
- <li class="covered" data-hits="10" data-linenumber="14">
- <span class="hits">10</span>
+ <li class="covered" data-hits="112" data-linenumber="14">
+ <span class="hits">112</span>
<code class="ruby"> @@statuses.find { |status| status.symbol == value.to_s.downcase.intern }</code>
</li>
<li class="never" data-hits="" data-linenumber="15">
@@ -2916,13 +10446,13 @@
<span class="hits">1</span>
<code class="ruby"> def self.find(id)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="18">
+ <li class="covered" data-hits="34" data-linenumber="18">
+ <span class="hits">34</span>
-
<code class="ruby"> @@statuses.find { |status| status.id.to_s == id.to_s }</code>
</li>
<li class="never" data-hits="" data-linenumber="19">
@@ -2940,13 +10470,13 @@
<span class="hits">1</span>
<code class="ruby"> def self.find_all</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="22">
+ <li class="covered" data-hits="11" data-linenumber="22">
+ <span class="hits">11</span>
-
<code class="ruby"> @@statuses.dup</code>
</li>
<li class="never" data-hits="" data-linenumber="23">
@@ -2964,13 +10494,13 @@
<span class="hits">1</span>
<code class="ruby"> def self.selectable</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="26">
+ <li class="covered" data-hits="11" data-linenumber="26">
+ <span class="hits">11</span>
-
<code class="ruby"> find_all - [self['Scheduled']]</code>
</li>
<li class="never" data-hits="" data-linenumber="27">
@@ -2988,13 +10518,13 @@
<span class="hits">1</span>
<code class="ruby"> def self.selectable_values</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="30">
+ <li class="covered" data-hits="6" data-linenumber="30">
+ <span class="hits">6</span>
-
<code class="ruby"> self.selectable.map(&:name)</code>
</li>
<li class="never" data-hits="" data-linenumber="31">
@@ -3064,18 +10594,252 @@
</ol>
</pre>
</div>
+ <div class="source_table" id="a3d0e95dccc6cc402608c949f61537589888f7d7">
+ <div class="header">
+ <h3>app/models/text_filter.rb</h3>
+ <h4><span class="red">63.16 %</span> covered</h4>
+ <div>
+ <b>19</b> relevant lines.
+ <span class="green"><b>12</b> lines covered</span> and
+ <span class="red"><b>7</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">class TextFilter</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="2">
+ <span class="hits">1</span>
+
+ <code class="ruby"> include Simpleton</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+
+ <code class="ruby"> include Annotatable</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="4">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="5">
+ <span class="hits">1</span>
+
+ <code class="ruby"> annotate :filter_name, :description</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="6">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="7">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def filter(text)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="8">
+ <span class="hits">1</span>
+
+ <code class="ruby"> text</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="9">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="10">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="11">
+ <span class="hits">1</span>
+
+ <code class="ruby"> class << self</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="12">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def inherited(subclass)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="13">
+
+
+ <code class="ruby"> subclass.filter_name = subclass.name.to_name('Filter')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="14">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="15">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="16">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def filter(text)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="17">
+
+
+ <code class="ruby"> instance.filter(text)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="18">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="19">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="20">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def description_file(filename)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="21">
+
+
+ <code class="ruby"> text = File.read(filename) rescue ""</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="22">
+
+
+ <code class="ruby"> self.description text</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="23">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="24">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="25">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def descendants_names</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="26">
+
+
+ <code class="ruby"> descendants.map { |s| s.filter_name }.sort</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="27">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="28">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="29">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def find_descendant(filter_name)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="30">
+
+
+ <code class="ruby"> descendants.each do |s|</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="31">
+
+
+ <code class="ruby"> return s if s.filter_name == filter_name</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="32">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="33">
+
+
+ <code class="ruby"> nil</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="34">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="35">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="36">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
<div class="source_table" id="3245bdc6bf68c4799ba1a1df23d11fe7c154286c">
<div class="header">
<h3>app/models/user.rb</h3>
- <h4><span class="red">75.0 %</span> covered</h4>
+ <h4><span class="yellow">82.69 %</span> covered</h4>
<div>
<b>52</b> relevant lines.
- <span class="green"><b>39</b> lines covered</span> and
- <span class="red"><b>13</b> lines missed.</span>
+ <span class="green"><b>43</b> lines covered</span> and
+ <span class="red"><b>9</b> lines missed.</span>
</div>
</div>
<pre>
<ol>
@@ -3120,12 +10884,12 @@
<code class="ruby"> # Default Order</code>
</li>
- <li class="covered" data-hits="47" data-linenumber="8">
- <span class="hits">47</span>
+ <li class="covered" data-hits="28" data-linenumber="8">
+ <span class="hits">28</span>
<code class="ruby"> default_scope {order("name")}</code>
</li>
<li class="never" data-hits="" data-linenumber="9">
@@ -3258,13 +11022,13 @@
<span class="hits">1</span>
<code class="ruby"> def has_role?(role)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="31">
+ <li class="covered" data-hits="140" data-linenumber="31">
+ <span class="hits">140</span>
-
<code class="ruby"> respond_to?("#{role}?") && send("#{role}?")</code>
</li>
<li class="never" data-hits="" data-linenumber="32">
@@ -3282,12 +11046,12 @@
<span class="hits">1</span>
<code class="ruby"> def sha1(phrase)</code>
</li>
- <li class="covered" data-hits="11" data-linenumber="35">
- <span class="hits">11</span>
+ <li class="covered" data-hits="20" data-linenumber="35">
+ <span class="hits">20</span>
<code class="ruby"> Digest::SHA1.hexdigest("--#{salt}--#{phrase}--")</code>
</li>
<li class="never" data-hits="" data-linenumber="36">
@@ -3306,19 +11070,19 @@
<span class="hits">1</span>
<code class="ruby"> def self.authenticate(login_or_email, password)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="39">
+ <li class="covered" data-hits="21" data-linenumber="39">
+ <span class="hits">21</span>
-
<code class="ruby"> user = where(["login = ? OR email = ?", login_or_email, login_or_email]).first</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="40">
+ <li class="covered" data-hits="21" data-linenumber="40">
+ <span class="hits">21</span>
-
<code class="ruby"> user if user && user.authenticated?(password)</code>
</li>
<li class="never" data-hits="" data-linenumber="41">
@@ -3336,13 +11100,13 @@
<span class="hits">1</span>
<code class="ruby"> def authenticated?(password)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="44">
+ <li class="covered" data-hits="20" data-linenumber="44">
+ <span class="hits">20</span>
-
<code class="ruby"> self.password == sha1(password)</code>
</li>
<li class="never" data-hits="" data-linenumber="45">
@@ -3384,12 +11148,12 @@
<span class="hits">1</span>
<code class="ruby"> def confirm_password?</code>
</li>
- <li class="covered" data-hits="11" data-linenumber="52">
- <span class="hits">11</span>
+ <li class="covered" data-hits="3" data-linenumber="52">
+ <span class="hits">3</span>
<code class="ruby"> @confirm_password</code>
</li>
<li class="never" data-hits="" data-linenumber="53">
@@ -3432,13 +11196,13 @@
<span class="hits">1</span>
<code class="ruby"> def forget_me</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="60">
+ <li class="covered" data-hits="1" data-linenumber="60">
+ <span class="hits">1</span>
-
<code class="ruby"> update_attribute(:session_token, nil)</code>
</li>
<li class="never" data-hits="" data-linenumber="61">
@@ -3456,13 +11220,13 @@
<span class="hits">1</span>
<code class="ruby"> def send_password_reset</code>
</li>
- <li class="covered" data-hits="3" data-linenumber="64">
- <span class="hits">3</span>
+ <li class="missed" data-hits="0" data-linenumber="64">
+
<code class="ruby"> generate_token(:password_reset_token)</code>
</li>
<li class="missed" data-hits="0" data-linenumber="65">
@@ -3489,35 +11253,35 @@
</li>
<li class="covered" data-hits="1" data-linenumber="69">
<span class="hits">1</span>
- <code class="ruby"> def generate_token(column)</code>
+ <code class="ruby"> private</code>
</li>
- <li class="covered" data-hits="10" data-linenumber="70">
- <span class="hits">10</span>
+ <li class="never" data-hits="" data-linenumber="70">
- <code class="ruby"> self[column] = SecureRandom.urlsafe_base64 if User.exists?(column => self[column])</code>
+
+ <code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="71">
+ <li class="covered" data-hits="1" data-linenumber="71">
+ <span class="hits">1</span>
-
- <code class="ruby"> end</code>
+ <code class="ruby"> def generate_token(column)</code>
</li>
- <li class="never" data-hits="" data-linenumber="72">
+ <li class="missed" data-hits="0" data-linenumber="72">
- <code class="ruby"></code>
+ <code class="ruby"> self[column] = SecureRandom.urlsafe_base64 if User.exists?(column => self[column])</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="73">
- <span class="hits">1</span>
+ <li class="never" data-hits="" data-linenumber="73">
- <code class="ruby"> private</code>
+
+ <code class="ruby"> end</code>
</li>
<li class="never" data-hits="" data-linenumber="74">
@@ -3528,12 +11292,12 @@
<span class="hits">1</span>
<code class="ruby"> def validate_length_of_password?</code>
</li>
- <li class="covered" data-hits="11" data-linenumber="76">
- <span class="hits">11</span>
+ <li class="covered" data-hits="3" data-linenumber="76">
+ <span class="hits">3</span>
<code class="ruby"> new_record? or not password.to_s.empty?</code>
</li>
<li class="never" data-hits="" data-linenumber="77">
@@ -3558,19 +11322,19 @@
<span class="hits">1</span>
<code class="ruby"> def encrypt_password</code>
</li>
- <li class="covered" data-hits="11" data-linenumber="81">
- <span class="hits">11</span>
+ <li class="missed" data-hits="0" data-linenumber="81">
+
<code class="ruby"> self.salt = Digest::SHA1.hexdigest("--#{Time.now}--#{login}--sweet harmonious biscuits--")</code>
</li>
- <li class="covered" data-hits="11" data-linenumber="82">
- <span class="hits">11</span>
+ <li class="missed" data-hits="0" data-linenumber="82">
+
<code class="ruby"> self.password = sha1(password)</code>
</li>
<li class="never" data-hits="" data-linenumber="83">
@@ -3594,31 +11358,31 @@
<span class="hits">1</span>
<code class="ruby"> def encrypt_password_unless_empty_or_unchanged</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="87">
+ <li class="covered" data-hits="2" data-linenumber="87">
+ <span class="hits">2</span>
-
<code class="ruby"> user = self.class.find(self.id)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="88">
+ <li class="covered" data-hits="2" data-linenumber="88">
+ <span class="hits">2</span>
-
<code class="ruby"> case password</code>
</li>
<li class="never" data-hits="" data-linenumber="89">
<code class="ruby"> when ''</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="90">
+ <li class="covered" data-hits="1" data-linenumber="90">
+ <span class="hits">1</span>
-
<code class="ruby"> self.password = user.password</code>
</li>
<li class="never" data-hits="" data-linenumber="91">
@@ -3667,15 +11431,15 @@
</div>
<div class="source_table" id="224090690cd46a1b82b33b9876817d1d65b88e42">
<div class="header">
<h3>app/models/user_action_observer.rb</h3>
- <h4><span class="green">92.86 %</span> covered</h4>
+ <h4><span class="green">100.0 %</span> covered</h4>
<div>
<b>14</b> relevant lines.
- <span class="green"><b>13</b> lines covered</span> and
- <span class="red"><b>1</b> lines missed.</span>
+ <span class="green"><b>14</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
</div>
</div>
<pre>
<ol>
@@ -3702,12 +11466,12 @@
<span class="hits">1</span>
<code class="ruby"> def current_user=(user)</code>
</li>
- <li class="covered" data-hits="9" data-linenumber="5">
- <span class="hits">9</span>
+ <li class="covered" data-hits="151" data-linenumber="5">
+ <span class="hits">151</span>
<code class="ruby"> self.class.current_user = user</code>
</li>
<li class="never" data-hits="" data-linenumber="6">
@@ -3720,12 +11484,12 @@
<span class="hits">1</span>
<code class="ruby"> def self.current_user=(user)</code>
</li>
- <li class="covered" data-hits="9" data-linenumber="8">
- <span class="hits">9</span>
+ <li class="covered" data-hits="151" data-linenumber="8">
+ <span class="hits">151</span>
<code class="ruby"> Thread.current[:current_user] = user</code>
</li>
<li class="never" data-hits="" data-linenumber="9">
@@ -3744,12 +11508,12 @@
<span class="hits">1</span>
<code class="ruby"> def current_user</code>
</li>
- <li class="covered" data-hits="9" data-linenumber="12">
- <span class="hits">9</span>
+ <li class="covered" data-hits="10" data-linenumber="12">
+ <span class="hits">10</span>
<code class="ruby"> self.class.current_user</code>
</li>
<li class="never" data-hits="" data-linenumber="13">
@@ -3762,12 +11526,12 @@
<span class="hits">1</span>
<code class="ruby"> def self.current_user</code>
</li>
- <li class="covered" data-hits="9" data-linenumber="15">
- <span class="hits">9</span>
+ <li class="covered" data-hits="10" data-linenumber="15">
+ <span class="hits">10</span>
<code class="ruby"> Thread.current[:current_user]</code>
</li>
<li class="never" data-hits="" data-linenumber="16">
@@ -3786,12 +11550,12 @@
<span class="hits">1</span>
<code class="ruby"> def before_create(model)</code>
</li>
- <li class="covered" data-hits="9" data-linenumber="19">
- <span class="hits">9</span>
+ <li class="covered" data-hits="8" data-linenumber="19">
+ <span class="hits">8</span>
<code class="ruby"> model.created_by = self.current_user</code>
</li>
<li class="never" data-hits="" data-linenumber="20">
@@ -3810,13 +11574,13 @@
<span class="hits">1</span>
<code class="ruby"> def before_update(model)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="23">
+ <li class="covered" data-hits="2" data-linenumber="23">
+ <span class="hits">2</span>
-
<code class="ruby"> model.updated_by = self.current_user</code>
</li>
<li class="never" data-hits="" data-linenumber="24">
@@ -3835,15 +11599,15 @@
</div>
<div class="source_table" id="d68b3b291e170af9809ca2750a36de47a6d1f510">
<div class="header">
<h3>lib/login_system.rb</h3>
- <h4><span class="red">39.47 %</span> covered</h4>
+ <h4><span class="red">78.95 %</span> covered</h4>
<div>
<b>76</b> relevant lines.
- <span class="green"><b>30</b> lines covered</span> and
- <span class="red"><b>46</b> lines missed.</span>
+ <span class="green"><b>60</b> lines covered</span> and
+ <span class="red"><b>16</b> lines missed.</span>
</div>
</div>
<pre>
<ol>
@@ -3924,12 +11688,12 @@
<span class="hits">1</span>
<code class="ruby"> def current_user</code>
</li>
- <li class="covered" data-hits="18" data-linenumber="14">
- <span class="hits">18</span>
+ <li class="covered" data-hits="967" data-linenumber="14">
+ <span class="hits">967</span>
<code class="ruby"> @current_user ||= (login_from_session || login_from_cookie || login_from_http)</code>
</li>
<li class="never" data-hits="" data-linenumber="15">
@@ -3948,55 +11712,55 @@
<span class="hits">1</span>
<code class="ruby"> def current_user=(value=nil)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="18">
+ <li class="covered" data-hits="22" data-linenumber="18">
+ <span class="hits">22</span>
-
<code class="ruby"> if value && value.is_a?(User)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="19">
+ <li class="covered" data-hits="19" data-linenumber="19">
+ <span class="hits">19</span>
-
<code class="ruby"> @current_user = value</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="20">
+ <li class="covered" data-hits="19" data-linenumber="20">
+ <span class="hits">19</span>
-
<code class="ruby"> session['user_id'] = value.id</code>
</li>
<li class="never" data-hits="" data-linenumber="21">
<code class="ruby"> else</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="22">
+ <li class="covered" data-hits="3" data-linenumber="22">
+ <span class="hits">3</span>
-
<code class="ruby"> @current_user = nil</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="23">
+ <li class="covered" data-hits="3" data-linenumber="23">
+ <span class="hits">3</span>
-
<code class="ruby"> session['user_id'] = nil</code>
</li>
<li class="never" data-hits="" data-linenumber="24">
<code class="ruby"> end</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="25">
+ <li class="covered" data-hits="22" data-linenumber="25">
+ <span class="hits">22</span>
-
<code class="ruby"> @current_user</code>
</li>
<li class="never" data-hits="" data-linenumber="26">
@@ -4020,67 +11784,67 @@
<code class="ruby"> #puts _process_action_callbacks.map(&:filter)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="30">
+ <li class="covered" data-hits="81" data-linenumber="30">
+ <span class="hits">81</span>
-
<code class="ruby"> if current_user</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="31">
+ <li class="covered" data-hits="58" data-linenumber="31">
+ <span class="hits">58</span>
-
<code class="ruby"> session['user_id'] = current_user.id</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="32">
+ <li class="covered" data-hits="58" data-linenumber="32">
+ <span class="hits">58</span>
-
<code class="ruby"> true</code>
</li>
<li class="never" data-hits="" data-linenumber="33">
<code class="ruby"> else</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="34">
+ <li class="covered" data-hits="23" data-linenumber="34">
+ <span class="hits">23</span>
-
<code class="ruby"> session[:return_to] = request.original_url</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="35">
+ <li class="covered" data-hits="23" data-linenumber="35">
+ <span class="hits">23</span>
-
<code class="ruby"> respond_to do |format|</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="36">
+ <li class="covered" data-hits="46" data-linenumber="36">
+ <span class="hits">46</span>
-
<code class="ruby"> format.html { redirect_to login_url }</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="37">
+ <li class="covered" data-hits="23" data-linenumber="37">
+ <span class="hits">23</span>
-
<code class="ruby"> format.any(:xml,:json) { request_http_basic_authentication }</code>
</li>
<li class="never" data-hits="" data-linenumber="38">
<code class="ruby"> end</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="39">
+ <li class="covered" data-hits="23" data-linenumber="39">
+ <span class="hits">23</span>
-
<code class="ruby"> false</code>
</li>
<li class="never" data-hits="" data-linenumber="40">
@@ -4110,25 +11874,25 @@
<code class="ruby"> #puts _process_action_callbacks.map(&:filter)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="45">
+ <li class="covered" data-hits="81" data-linenumber="45">
+ <span class="hits">81</span>
-
<code class="ruby"> action = action_name.to_s.intern</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="46">
+ <li class="covered" data-hits="81" data-linenumber="46">
+ <span class="hits">81</span>
-
<code class="ruby"> if user_has_access_to_action?(action)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="47">
+ <li class="covered" data-hits="81" data-linenumber="47">
+ <span class="hits">81</span>
-
<code class="ruby"> true</code>
</li>
<li class="never" data-hits="" data-linenumber="48">
@@ -4200,13 +11964,13 @@
<span class="hits">1</span>
<code class="ruby"> def user_has_access_to_action?(action)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="60">
+ <li class="covered" data-hits="81" data-linenumber="60">
+ <span class="hits">81</span>
-
<code class="ruby"> self.class.user_has_access_to_action?(current_user, action, self)</code>
</li>
<li class="never" data-hits="" data-linenumber="61">
@@ -4224,14 +11988,14 @@
<span class="hits">1</span>
<code class="ruby"> def login_from_session</code>
</li>
- <li class="covered" data-hits="36" data-linenumber="64">
- <span class="hits">36</span>
+ <li class="covered" data-hits="614" data-linenumber="64">
+ <span class="hits">614</span>
- <code class="ruby"> User.find(session['user_id']) rescue nil</code>
+ <code class="ruby"> User.unscoped.find(session['user_id']) rescue nil</code>
</li>
<li class="never" data-hits="" data-linenumber="65">
@@ -4248,12 +12012,12 @@
<span class="hits">1</span>
<code class="ruby"> def login_from_cookie</code>
</li>
- <li class="covered" data-hits="18" data-linenumber="68">
- <span class="hits">18</span>
+ <li class="covered" data-hits="276" data-linenumber="68">
+ <span class="hits">276</span>
<code class="ruby"> if !cookies[:session_token].blank? && user = User.find_by_session_token(cookies[:session_token]) # don't find by empty value</code>
</li>
<li class="missed" data-hits="0" data-linenumber="69">
@@ -4296,12 +12060,12 @@
<span class="hits">1</span>
<code class="ruby"> def login_from_http</code>
</li>
- <li class="covered" data-hits="18" data-linenumber="76">
- <span class="hits">18</span>
+ <li class="covered" data-hits="276" data-linenumber="76">
+ <span class="hits">276</span>
<code class="ruby"> if [Mime::XML, Mime::JSON].include?(request.format)</code>
</li>
<li class="missed" data-hits="0" data-linenumber="77">
@@ -4374,18 +12138,18 @@
<span class="hits">1</span>
<code class="ruby"> def no_login_required</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="89">
- <span class="hits">1</span>
+ <li class="covered" data-hits="2" data-linenumber="89">
+ <span class="hits">2</span>
<code class="ruby"> skip_before_filter :authenticate</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="90">
- <span class="hits">1</span>
+ <li class="covered" data-hits="2" data-linenumber="90">
+ <span class="hits">2</span>
<code class="ruby"> skip_before_filter :authorize</code>
</li>
<li class="never" data-hits="" data-linenumber="91">
@@ -4470,43 +12234,43 @@
<span class="hits">1</span>
<code class="ruby"> def only_allow_access_to(*args)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="105">
+ <li class="covered" data-hits="4" data-linenumber="105">
+ <span class="hits">4</span>
-
<code class="ruby"> options = {}</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="106">
+ <li class="covered" data-hits="4" data-linenumber="106">
+ <span class="hits">4</span>
-
<code class="ruby"> options = args.pop.dup if args.last.kind_of?(Hash)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="107">
+ <li class="covered" data-hits="4" data-linenumber="107">
+ <span class="hits">4</span>
-
<code class="ruby"> options.symbolize_keys!</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="108">
+ <li class="covered" data-hits="23" data-linenumber="108">
+ <span class="hits">23</span>
-
<code class="ruby"> actions = args.map { |a| a.to_s.intern }</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="109">
+ <li class="covered" data-hits="4" data-linenumber="109">
+ <span class="hits">4</span>
-
<code class="ruby"> actions.each do |action|</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="110">
+ <li class="covered" data-hits="19" data-linenumber="110">
+ <span class="hits">19</span>
-
<code class="ruby"> controller_permissions[action] = options</code>
</li>
<li class="never" data-hits="" data-linenumber="111">
@@ -4530,13 +12294,13 @@
<span class="hits">1</span>
<code class="ruby"> def controller_permissions</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="115">
+ <li class="covered" data-hits="286" data-linenumber="115">
+ <span class="hits">286</span>
-
<code class="ruby"> @controller_permissions ||= Hash.new { |h,k| h[k.to_s.intern] = Hash.new }</code>
</li>
<li class="never" data-hits="" data-linenumber="116">
@@ -4554,13 +12318,13 @@
<span class="hits">1</span>
<code class="ruby"> def user_has_access_to_action?(user, action, instance=new)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="119">
+ <li class="covered" data-hits="256" data-linenumber="119">
+ <span class="hits">256</span>
-
<code class="ruby"> permissions = controller_permissions[action.to_s.intern]</code>
</li>
<li class="never" data-hits="" data-linenumber="120">
@@ -4572,19 +12336,19 @@
<code class="ruby"> when allowed_roles = permissions[:when]</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="122">
+ <li class="covered" data-hits="78" data-linenumber="122">
+ <span class="hits">78</span>
-
<code class="ruby"> allowed_roles = [allowed_roles].flatten</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="123">
+ <li class="covered" data-hits="218" data-linenumber="123">
+ <span class="hits">218</span>
-
<code class="ruby"> allowed_roles.any? { |role| user.has_role?(role) }</code>
</li>
<li class="never" data-hits="" data-linenumber="124">
@@ -4602,19 +12366,19 @@
<code class="ruby"> else</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="127">
+ <li class="covered" data-hits="178" data-linenumber="127">
+ <span class="hits">178</span>
-
<code class="ruby"> true</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="128">
+ <li class="covered" data-hits="256" data-linenumber="128">
+ <span class="hits">256</span>
-
<code class="ruby"> end</code>
</li>
<li class="never" data-hits="" data-linenumber="129">
@@ -4636,784 +12400,1792 @@
</ol>
</pre>
</div>
- <div class="source_table" id="fac0612cad92bfcdda24e22600d5d675c7682536">
+ <div class="source_table" id="bfaefba265a613847eb17511c91aeb33124d3b07">
<div class="header">
- <h3>spec/controllers/password_resets_controller_spec.rb</h3>
- <h4><span class="red">67.14 %</span> covered</h4>
+ <h3>lib/trusty_cms/admin_ui/region_partials.rb</h3>
+ <h4><span class="yellow">83.33 %</span> covered</h4>
<div>
- <b>70</b> relevant lines.
- <span class="green"><b>47</b> lines covered</span> and
- <span class="red"><b>23</b> lines missed.</span>
+ <b>12</b> relevant lines.
+ <span class="green"><b>10</b> lines covered</span> and
+ <span class="red"><b>2</b> lines missed.</span>
</div>
</div>
<pre>
<ol>
<li class="covered" data-hits="1" data-linenumber="1">
<span class="hits">1</span>
- <code class="ruby">require 'spec_helper'</code>
+ <code class="ruby">class TrustyCms::AdminUI::RegionPartials</code>
</li>
- <li class="never" data-hits="" data-linenumber="2">
+ <li class="covered" data-hits="1" data-linenumber="2">
+ <span class="hits">1</span>
+ <code class="ruby"> def initialize(template)</code>
+ </li>
+
+ <li class="covered" data-hits="287" data-linenumber="3">
+ <span class="hits">287</span>
+ <code class="ruby"> @partials = Hash.new {|h,k| h[k] = "<strong>`#{k}' default partial not found!</strong>" }</code>
+ </li>
+
+ <li class="covered" data-hits="287" data-linenumber="4">
+ <span class="hits">287</span>
+
+ <code class="ruby"> @template = template</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="5">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="6">
+
+
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="3">
+ <li class="covered" data-hits="1" data-linenumber="7">
<span class="hits">1</span>
- <code class="ruby">describe Admin::PasswordResetsController, :type => :controller do</code>
+ <code class="ruby"> def [](key)</code>
</li>
- <li class="never" data-hits="" data-linenumber="4">
+ <li class="covered" data-hits="230" data-linenumber="8">
+ <span class="hits">230</span>
+ <code class="ruby"> @partials[key.to_s]</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="9">
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="10">
+
+
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="5">
+ <li class="covered" data-hits="1" data-linenumber="11">
<span class="hits">1</span>
- <code class="ruby"> describe "Get new" do</code>
+ <code class="ruby"> def method_missing(method, *args, &block)</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="6">
- <span class="hits">1</span>
+ <li class="covered" data-hits="231" data-linenumber="12">
+ <span class="hits">231</span>
- <code class="ruby"> it "renders the new template" do</code>
+ <code class="ruby"> if block_given?</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="7">
- <span class="hits">1</span>
+ <li class="never" data-hits="" data-linenumber="13">
- <code class="ruby"> get :new</code>
+
+ <code class="ruby"> # Ruby 1.9.2 yields self in instance_eval... see https://gist.github.com/479572</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="8">
- <span class="hits">1</span>
+ <li class="never" data-hits="" data-linenumber="14">
- <code class="ruby"> expect(response).to render_template('new')</code>
+
+ <code class="ruby"> # lambdas are as strict as methods in 1.9.x, making sure that the args match, Procs are not.</code>
</li>
- <li class="never" data-hits="" data-linenumber="9">
+ <li class="covered" data-hits="231" data-linenumber="15">
+ <span class="hits">231</span>
+ <code class="ruby"> if RUBY_VERSION =~ /^1\.9/ and block.lambda? and block.arity != 1</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="16">
+
+ <code class="ruby"> raise "You can only pass a proc ('Proc.new') or a lambda that takes exactly one arg (for self) to TrustyCms::AdminUI::RegionPartials' method_missing."</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="17">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="231" data-linenumber="18">
+ <span class="hits">231</span>
+
+ <code class="ruby"> @partials[method.to_s] = @template.capture(&block)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="19">
+
+
+ <code class="ruby"> else</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="20">
+
+
+ <code class="ruby"> @partials[method.to_s]</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="21">
+
+
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="10">
+ <li class="never" data-hits="" data-linenumber="22">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="11">
+ <li class="never" data-hits="" data-linenumber="23">
- <code class="ruby"></code>
+ <code class="ruby">end</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="12">
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="62bfb9f3ee6e8ac2730bec06c3df334c59428c84">
+ <div class="header">
+ <h3>lib/trusty_cms/available_locales.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>10</b> relevant lines.
+ <span class="green"><b>10</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
<span class="hits">1</span>
- <code class="ruby"> describe "POST create " do</code>
+ <code class="ruby">module TrustyCms::AvailableLocales</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="13">
+ <li class="never" data-hits="" data-linenumber="2">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="3">
+
+
+ <code class="ruby"> # Returns the list of available locale files in options_for_select format.</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="4">
+
+
+ <code class="ruby"> #</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="5">
<span class="hits">1</span>
- <code class="ruby"> context "with a valid user and email " do</code>
+ <code class="ruby"> def self.locales</code>
</li>
- <li class="covered" data-hits="5" data-linenumber="14">
- <span class="hits">5</span>
+ <li class="covered" data-hits="7" data-linenumber="6">
+ <span class="hits">7</span>
- <code class="ruby"> let(:user) { create(:user) }</code>
+ <code class="ruby"> available_locales = {}</code>
</li>
+ <li class="covered" data-hits="7" data-linenumber="7">
+ <span class="hits">7</span>
+
+ <code class="ruby"> TrustyCms.configuration.i18n.load_path.each do |path|</code>
+ </li>
+
+ <li class="covered" data-hits="189" data-linenumber="8">
+ <span class="hits">189</span>
+
+ <code class="ruby"> if File.exists?(path) && path !~ /_available_tags/</code>
+ </li>
+
+ <li class="covered" data-hits="175" data-linenumber="9">
+ <span class="hits">175</span>
+
+ <code class="ruby"> locale_yaml = YAML.load_file(path)</code>
+ </li>
+
+ <li class="covered" data-hits="175" data-linenumber="10">
+ <span class="hits">175</span>
+
+ <code class="ruby"> stem = File.basename(path, '.yml')</code>
+ </li>
+
+ <li class="covered" data-hits="175" data-linenumber="11">
+ <span class="hits">175</span>
+
+ <code class="ruby"> if locale_yaml[stem] && lang = locale_yaml[stem]["this_file_language"]</code>
+ </li>
+
+ <li class="covered" data-hits="14" data-linenumber="12">
+ <span class="hits">14</span>
+
+ <code class="ruby"> available_locales[lang] = stem</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="13">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="14">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
<li class="never" data-hits="" data-linenumber="15">
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="21" data-linenumber="16">
+ <span class="hits">21</span>
+
+ <code class="ruby"> available_locales.collect {|k,v| [k, v]}.sort_by { |s| s[0] }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="17">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="18">
+
+
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="16">
+ <li class="never" data-hits="" data-linenumber="19">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="7ec5b193ca91bf0e62afdd726aa3bd77aba3eaaa">
+ <div class="header">
+ <h3>lib/trusty_cms/pagination/controller.rb</h3>
+ <h4><span class="green">92.86 %</span> covered</h4>
+ <div>
+ <b>14</b> relevant lines.
+ <span class="green"><b>13</b> lines covered</span> and
+ <span class="red"><b>1</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
<span class="hits">1</span>
- <code class="ruby"> it "finds the user" do</code>
+ <code class="ruby">module TrustyCms</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="17">
+ <li class="covered" data-hits="1" data-linenumber="2">
<span class="hits">1</span>
- <code class="ruby"> expect(User).to receive(:find_by).with(email: user.email).and_return(user)</code>
+ <code class="ruby"> module Pagination</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="18">
+ <li class="covered" data-hits="1" data-linenumber="3">
<span class="hits">1</span>
- <code class="ruby"> post :create, email: user.email</code>
+ <code class="ruby"> module Controller</code>
</li>
- <li class="never" data-hits="" data-linenumber="19">
+ <li class="never" data-hits="" data-linenumber="4">
- <code class="ruby"> end</code>
+ <code class="ruby"> # for inclusion into public-facing controllers</code>
</li>
- <li class="never" data-hits="" data-linenumber="20">
+ <li class="never" data-hits="" data-linenumber="5">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="21">
+ <li class="covered" data-hits="1" data-linenumber="6">
<span class="hits">1</span>
- <code class="ruby"> it "generates a new password reset token " do</code>
+ <code class="ruby"> def configure_pagination</code>
</li>
- <li class="covered" data-hits="2" data-linenumber="22">
- <span class="hits">2</span>
+ <li class="never" data-hits="" data-linenumber="7">
- <code class="ruby"> expect { post :create, email: user.email ; user.reload }.to change{ user.password_reset_token }</code>
+
+ <code class="ruby"> # unconfigured parameters remain at will_paginate defaults</code>
</li>
- <li class="never" data-hits="" data-linenumber="23">
+ <li class="never" data-hits="" data-linenumber="8">
+ <code class="ruby"> # will_paginate controller options are not overridden by tag attribetus</code>
+ </li>
+
+ <li class="covered" data-hits="24" data-linenumber="9">
+ <span class="hits">24</span>
+
+ <code class="ruby"> WillPaginate::ViewHelpers.pagination_options[:param_name] = TrustyCms::Config["pagination.param_name"].to_sym unless TrustyCms::Config["pagination.param_name"].blank?</code>
+ </li>
+
+ <li class="covered" data-hits="24" data-linenumber="10">
+ <span class="hits">24</span>
+
+ <code class="ruby"> WillPaginate::ViewHelpers.pagination_options[:per_page_param_name] = TrustyCms::Config["pagination.per_page_param_name"].blank? ? :per_page : TrustyCms::Config["pagination.per_page_param_name"].to_sym</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="11">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="12">
+
+
+ <code class="ruby"> # will_paginate view options can be overridden by tag attributes</code>
+ </li>
+
+ <li class="covered" data-hits="24" data-linenumber="13">
+ <span class="hits">24</span>
+
+ <code class="ruby"> [:class, :previous_label, :next_label, :inner_window, :outer_window, :separator, :container].each do |opt|</code>
+ </li>
+
+ <li class="covered" data-hits="168" data-linenumber="14">
+ <span class="hits">168</span>
+
+ <code class="ruby"> WillPaginate::ViewHelpers.pagination_options[opt] = TrustyCms::Config["pagination.#{opt}"] unless TrustyCms::Config["pagination.#{opt}"].blank?</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="15">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="16">
+
+
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="24">
+ <li class="never" data-hits="" data-linenumber="17">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="25">
+ <li class="covered" data-hits="1" data-linenumber="18">
<span class="hits">1</span>
- <code class="ruby"> it "sends a password reset email" do</code>
+ <code class="ruby"> def pagination_parameters</code>
</li>
- <li class="covered" data-hits="2" data-linenumber="26">
- <span class="hits">2</span>
+ <li class="never" data-hits="" data-linenumber="19">
- <code class="ruby"> expect { post :create, email: user.email }.to change(ActionMailer::Base.deliveries, :size)</code>
+
+ <code class="ruby"> {</code>
</li>
- <li class="never" data-hits="" data-linenumber="27">
+ <li class="never" data-hits="" data-linenumber="20">
+ <code class="ruby"> :page => params[WillPaginate::ViewHelpers.pagination_options[:param_name]] || 1,</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="21">
+
+
+ <code class="ruby"> :per_page => params[WillPaginate::ViewHelpers.pagination_options[:per_page_param_name]] || TrustyCms::Config['pagination.per_page'] || 20</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="22">
+
+
+ <code class="ruby"> }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="23">
+
+
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="28">
+ <li class="never" data-hits="" data-linenumber="24">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="29">
+ <li class="covered" data-hits="1" data-linenumber="25">
<span class="hits">1</span>
- <code class="ruby"> it "sets the flash sucess message" do</code>
+ <code class="ruby"> def self.included(base)</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="30">
+ <li class="covered" data-hits="1" data-linenumber="26">
<span class="hits">1</span>
- <code class="ruby"> post :create, email: user.email</code>
+ <code class="ruby"> base.class_eval {</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="31">
+ <li class="covered" data-hits="1" data-linenumber="27">
+ <span class="hits">1</span>
+ <code class="ruby"> helper_method :pagination_parameters</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="28">
+ <span class="hits">1</span>
- <code class="ruby"> expect(flash[:success]).to match(/check your email/)</code>
+ <code class="ruby"> before_filter :configure_pagination</code>
</li>
- <li class="never" data-hits="" data-linenumber="32">
+ <li class="never" data-hits="" data-linenumber="29">
+ <code class="ruby"> }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="30">
+
+
<code class="ruby"> end</code>
</li>
+ <li class="never" data-hits="" data-linenumber="31">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="32">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
<li class="never" data-hits="" data-linenumber="33">
<code class="ruby"></code>
</li>
<li class="never" data-hits="" data-linenumber="34">
- <code class="ruby"> end</code>
+ <code class="ruby"></code>
</li>
<li class="never" data-hits="" data-linenumber="35">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="36">
- <span class="hits">1</span>
+ <li class="never" data-hits="" data-linenumber="36">
- <code class="ruby"> context 'with no user found' do</code>
+
+ <code class="ruby">end</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="37">
- <span class="hits">1</span>
+ <li class="never" data-hits="" data-linenumber="37">
- <code class="ruby"> it "renders the new page" do</code>
+
+ <code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="38">
- <span class="hits">1</span>
+ <li class="never" data-hits="" data-linenumber="38">
- <code class="ruby"> post :create, email: 'none@found.com'</code>
+
+ <code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="39">
+ <li class="never" data-hits="" data-linenumber="39">
- <code class="ruby"> expect(response).to render_template('new')</code>
+ <code class="ruby"></code>
</li>
<li class="never" data-hits="" data-linenumber="40">
- <code class="ruby"> end</code>
+ <code class="ruby"></code>
</li>
<li class="never" data-hits="" data-linenumber="41">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="42">
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="bed13f447cc3293c2e33013bd302547d11b4f7be">
+ <div class="header">
+ <h3>lib/trusty_cms/resource_responses.rb</h3>
+ <h4><span class="red">80.0 %</span> covered</h4>
+ <div>
+ <b>70</b> relevant lines.
+ <span class="green"><b>56</b> lines covered</span> and
+ <span class="red"><b>14</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
<span class="hits">1</span>
- <code class="ruby"> it "sets the flash message" do</code>
+ <code class="ruby">require 'ostruct'</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="43">
+ <li class="covered" data-hits="1" data-linenumber="2">
<span class="hits">1</span>
- <code class="ruby"> post :create , email: 'none@found.com'</code>
+ <code class="ruby">module TrustyCms</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="44">
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+ <code class="ruby"> module ResourceResponses</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="4">
+ <span class="hits">1</span>
- <code class="ruby"> expect(flash[:notice]).to match(/not found/)</code>
+ <code class="ruby"> def self.extended(base)</code>
</li>
- <li class="never" data-hits="" data-linenumber="45">
+ <li class="covered" data-hits="1" data-linenumber="5">
+ <span class="hits">1</span>
+ <code class="ruby"> base.send :class_attribute, :responses</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="6">
+ <span class="hits">1</span>
- <code class="ruby"> end</code>
+ <code class="ruby"> base.send :include, InstanceMethods</code>
</li>
- <li class="never" data-hits="" data-linenumber="46">
+ <li class="never" data-hits="" data-linenumber="7">
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="8">
+
+
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="47">
+ <li class="covered" data-hits="1" data-linenumber="9">
+ <span class="hits">1</span>
+ <code class="ruby"> def create_responses</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="10">
+ <span class="hits">2</span>
- <code class="ruby"> end</code>
+ <code class="ruby"> r = (self.responses ||= Collector.new)</code>
</li>
- <li class="never" data-hits="" data-linenumber="48">
+ <li class="covered" data-hits="2" data-linenumber="11">
+ <span class="hits">2</span>
+ <code class="ruby"> yield r if block_given?</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="12">
+ <span class="hits">2</span>
- <code class="ruby"> end</code>
+ <code class="ruby"> r</code>
</li>
- <li class="never" data-hits="" data-linenumber="49">
+ <li class="never" data-hits="" data-linenumber="13">
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="14">
+
+
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="50">
+ <li class="covered" data-hits="1" data-linenumber="15">
<span class="hits">1</span>
- <code class="ruby"> describe "Get edit" do</code>
+ <code class="ruby"> module InstanceMethods</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="51">
+ <li class="covered" data-hits="1" data-linenumber="16">
<span class="hits">1</span>
- <code class="ruby"> context "with a password_reset_token" do</code>
+ <code class="ruby"> def response_for(action)</code>
</li>
- <li class="covered" data-hits="3" data-linenumber="52">
- <span class="hits">3</span>
+ <li class="covered" data-hits="47" data-linenumber="17">
+ <span class="hits">47</span>
- <code class="ruby"> let(:user) { create(:user)}</code>
+ <code class="ruby"> responses = self.class.responses.send(action)</code>
</li>
- <li class="covered" data-hits="3" data-linenumber="53">
- <span class="hits">3</span>
+ <li class="covered" data-hits="47" data-linenumber="18">
+ <span class="hits">47</span>
- <code class="ruby"> before { user.generate_token(:password_reset_token) }</code>
+ <code class="ruby"> respond_to do |wants|</code>
</li>
- <li class="never" data-hits="" data-linenumber="54">
+ <li class="covered" data-hits="47" data-linenumber="19">
+ <span class="hits">47</span>
+ <code class="ruby"> responses.each_format do |f, format_block|</code>
+ </li>
+
+ <li class="covered" data-hits="33" data-linenumber="20">
+ <span class="hits">33</span>
- <code class="ruby"></code>
+ <code class="ruby"> if format_block</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="55">
- <span class="hits">1</span>
+ <li class="covered" data-hits="33" data-linenumber="21">
+ <span class="hits">33</span>
- <code class="ruby"> it "renders the edit template" do</code>
+ <code class="ruby"> wants.send(f, &wrap(format_block))</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="56">
+ <li class="never" data-hits="" data-linenumber="22">
- <code class="ruby"> get :edit, id: user.password_reset_token</code>
+ <code class="ruby"> else</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="57">
+ <li class="missed" data-hits="0" data-linenumber="23">
- <code class="ruby"> expect(response).to render_template('edit')</code>
+ <code class="ruby"> wants.send(f)</code>
</li>
- <li class="never" data-hits="" data-linenumber="58">
+ <li class="never" data-hits="" data-linenumber="24">
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="25">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="47" data-linenumber="26">
+ <span class="hits">47</span>
+
+ <code class="ruby"> responses.each_published do |pub, pub_block|</code>
+ </li>
+
+ <li class="covered" data-hits="86" data-linenumber="27">
+ <span class="hits">86</span>
+
+ <code class="ruby"> wants.send(pub, &wrap(pub_block))</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="28">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="47" data-linenumber="29">
+ <span class="hits">47</span>
+
+ <code class="ruby"> if responses.default</code>
+ </li>
+
+ <li class="covered" data-hits="10" data-linenumber="30">
+ <span class="hits">10</span>
+
+ <code class="ruby"> wants.any(&wrap(responses.default))</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="31">
+
+
+ <code class="ruby"> else</code>
+ </li>
+
+ <li class="covered" data-hits="37" data-linenumber="32">
+ <span class="hits">37</span>
+
+ <code class="ruby"> wants.any</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="33">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="34">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="35">
+
+
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="59">
+ <li class="never" data-hits="" data-linenumber="36">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="60">
+ <li class="covered" data-hits="1" data-linenumber="37">
<span class="hits">1</span>
- <code class="ruby"> it "assigns a @user" do</code>
+ <code class="ruby"> def wrap(proc)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="61">
+ <li class="never" data-hits="" data-linenumber="38">
- <code class="ruby"> get :edit, id: user.password_reset_token</code>
+ <code class="ruby"> # Makes sure our response blocks get evaluated in the right context</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="62">
+ <li class="covered" data-hits="129" data-linenumber="39">
+ <span class="hits">129</span>
+ <code class="ruby"> lambda do</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="40">
- <code class="ruby"> expect(assigns(:user)).to eq(user)</code>
+
+ <code class="ruby"> # Ruby 1.9.2 yields self in instance_eval... see https://gist.github.com/479572</code>
</li>
- <li class="never" data-hits="" data-linenumber="63">
+ <li class="never" data-hits="" data-linenumber="41">
- <code class="ruby"> end</code>
+ <code class="ruby"> # lambdas are as strict as methods in 1.9.x, making sure that the args match, Procs are not.</code>
</li>
- <li class="never" data-hits="" data-linenumber="64">
+ <li class="covered" data-hits="10" data-linenumber="42">
+ <span class="hits">10</span>
+ <code class="ruby"> if RUBY_VERSION =~ /^1\.9/ and proc.lambda? and proc.arity != 1</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="43">
- <code class="ruby"> end</code>
+
+ <code class="ruby"> raise "You can only pass a proc ('Proc.new') or a lambda that takes exactly one arg (for self) to the wrap method."</code>
</li>
- <li class="never" data-hits="" data-linenumber="65">
+ <li class="never" data-hits="" data-linenumber="44">
- <code class="ruby"> end</code>
+ <code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="66">
+ <li class="never" data-hits="" data-linenumber="45">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="67">
- <span class="hits">1</span>
+ <li class="covered" data-hits="10" data-linenumber="46">
+ <span class="hits">10</span>
- <code class="ruby"> context "with no password_reset_token found" do</code>
+ <code class="ruby"> instance_eval(&proc)</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="68">
+ <li class="never" data-hits="" data-linenumber="47">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="48">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="49">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="50">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="51">
<span class="hits">1</span>
- <code class="ruby"> it "renders the 404 page" do</code>
+ <code class="ruby"> class Collector < OpenStruct</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="69">
+ <li class="covered" data-hits="1" data-linenumber="52">
<span class="hits">1</span>
- <code class="ruby"> get :edit, id: 'not found'</code>
+ <code class="ruby"> def initialize</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="70">
+ <li class="covered" data-hits="1" data-linenumber="53">
<span class="hits">1</span>
- <code class="ruby"> expect( response.status ).to eq(404)</code>
+ <code class="ruby"> super</code>
</li>
- <li class="never" data-hits="" data-linenumber="71">
+ <li class="covered" data-hits="10" data-linenumber="54">
+ <span class="hits">10</span>
+ <code class="ruby"> @table = Hash.new {|h,k| h[k] = Response.new }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="55">
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="56">
+
+
<code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="72">
+ <li class="covered" data-hits="1" data-linenumber="57">
+ <span class="hits">1</span>
+ <code class="ruby"> def initialize_copy(orig)</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="58">
- <code class="ruby"> expect(response).to render_template(file: "#{Rails.root}/public/404.html")</code>
+
+ <code class="ruby"> super</code>
</li>
- <li class="never" data-hits="" data-linenumber="73">
+ <li class="missed" data-hits="0" data-linenumber="59">
- <code class="ruby"> end</code>
+ <code class="ruby"> @table.keys.each do |key|</code>
</li>
- <li class="never" data-hits="" data-linenumber="74">
+ <li class="missed" data-hits="0" data-linenumber="60">
- <code class="ruby"></code>
+ <code class="ruby"> @table[key] = orig.send(key).dup</code>
</li>
- <li class="never" data-hits="" data-linenumber="75">
+ <li class="never" data-hits="" data-linenumber="61">
- <code class="ruby"> end</code>
+ <code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="76">
+ <li class="never" data-hits="" data-linenumber="62">
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="63">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="64">
+
+
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="77">
+ <li class="covered" data-hits="1" data-linenumber="65">
<span class="hits">1</span>
- <code class="ruby"> describe "PATCH update" do</code>
+ <code class="ruby"> class Response</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="78">
+ <li class="covered" data-hits="1" data-linenumber="66">
<span class="hits">1</span>
- <code class="ruby"> context "with no token found" do</code>
+ <code class="ruby"> attr_reader :publish_formats, :publish_block, :blocks, :block_order</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="79">
+ <li class="covered" data-hits="1" data-linenumber="67">
<span class="hits">1</span>
- <code class="ruby"> it "renders the edit page" do</code>
+ <code class="ruby"> def initialize</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="80">
- <span class="hits">1</span>
+ <li class="covered" data-hits="9" data-linenumber="68">
+ <span class="hits">9</span>
- <code class="ruby"> patch :update, id: 'notfound', user: { password: 'newpassord1', password_confirmation: 'newpassword1' }</code>
+ <code class="ruby"> @publish_formats = []</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="81">
+ <li class="covered" data-hits="9" data-linenumber="69">
+ <span class="hits">9</span>
+ <code class="ruby"> @blocks = {}</code>
+ </li>
+
+ <li class="covered" data-hits="9" data-linenumber="70">
+ <span class="hits">9</span>
- <code class="ruby"> expect(response).to render_template('edit')</code>
+ <code class="ruby"> @block_order = []</code>
</li>
- <li class="never" data-hits="" data-linenumber="82">
+ <li class="never" data-hits="" data-linenumber="71">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="83">
+ <li class="never" data-hits="" data-linenumber="72">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="84">
+ <li class="covered" data-hits="1" data-linenumber="73">
<span class="hits">1</span>
- <code class="ruby"> it "sets the flash message" do</code>
+ <code class="ruby"> def initialize_copy(orig)</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="85">
- <span class="hits">1</span>
+ <li class="missed" data-hits="0" data-linenumber="74">
- <code class="ruby"> patch :update, id: 'notfound', user: { password: 'newpassord1', password_confirmation: 'newpassword1' }</code>
+
+ <code class="ruby"> @publish_formats = orig.publish_formats.dup</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="86">
+ <li class="missed" data-hits="0" data-linenumber="75">
- <code class="ruby"> expect(flash[:notice]).to match(/not found/)</code>
+ <code class="ruby"> @blocks = orig.blocks.dup</code>
</li>
- <li class="never" data-hits="" data-linenumber="87">
+ <li class="missed" data-hits="0" data-linenumber="76">
- <code class="ruby"> end</code>
+ <code class="ruby"> @block_order = orig.block_order.dup</code>
</li>
- <li class="never" data-hits="" data-linenumber="88">
+ <li class="missed" data-hits="0" data-linenumber="77">
- <code class="ruby"> end</code>
+ <code class="ruby"> @publish_block = orig.publish_block.dup if orig.publish_block</code>
</li>
- <li class="never" data-hits="" data-linenumber="89">
+ <li class="missed" data-hits="0" data-linenumber="78">
+ <code class="ruby"> @default = orig.default.dup if orig.default</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="79">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="80">
+
+
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="90">
+ <li class="covered" data-hits="1" data-linenumber="81">
<span class="hits">1</span>
- <code class="ruby"> context "with a valid token" do</code>
+ <code class="ruby"> def default(&block)</code>
</li>
- <li class="covered" data-hits="6" data-linenumber="91">
- <span class="hits">6</span>
+ <li class="covered" data-hits="64" data-linenumber="82">
+ <span class="hits">64</span>
- <code class="ruby"> let(:user) { create(:user) }</code>
+ <code class="ruby"> if block_given?</code>
</li>
- <li class="covered" data-hits="6" data-linenumber="92">
- <span class="hits">6</span>
+ <li class="covered" data-hits="7" data-linenumber="83">
+ <span class="hits">7</span>
- <code class="ruby"> before { user.generate_token(:password_reset_token)}</code>
+ <code class="ruby"> @default = block</code>
</li>
- <li class="never" data-hits="" data-linenumber="93">
+ <li class="never" data-hits="" data-linenumber="84">
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="64" data-linenumber="85">
+ <span class="hits">64</span>
+
+ <code class="ruby"> @default</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="86">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="87">
+
+
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="94">
+ <li class="covered" data-hits="1" data-linenumber="88">
<span class="hits">1</span>
- <code class="ruby"> it "updates the user's password" do</code>
+ <code class="ruby"> def publish(*formats, &block)</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="95">
+ <li class="covered" data-hits="8" data-linenumber="89">
+ <span class="hits">8</span>
+ <code class="ruby"> @publish_formats.concat(formats)</code>
+ </li>
+
+ <li class="covered" data-hits="8" data-linenumber="90">
+ <span class="hits">8</span>
- <code class="ruby"> digest = user.password_digest</code>
+ <code class="ruby"> if block_given?</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="96">
+ <li class="covered" data-hits="8" data-linenumber="91">
+ <span class="hits">8</span>
+ <code class="ruby"> @publish_block = block</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="92">
- <code class="ruby"> patch :update, id: user.password_reset_token, user: { password: 'newpassword1', password_confirmation: 'newpassword1'}</code>
+
+ <code class="ruby"> else</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="97">
+ <li class="missed" data-hits="0" data-linenumber="93">
- <code class="ruby"> user.reload</code>
+ <code class="ruby"> raise ArgumentError, "Block required to publish" unless @publish_block</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="98">
+ <li class="never" data-hits="" data-linenumber="94">
- <code class="ruby"> expect(user.password_digest).to_not eq(digest)</code>
+ <code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="99">
+ <li class="never" data-hits="" data-linenumber="95">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="100">
+ <li class="never" data-hits="" data-linenumber="96">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="101">
+ <li class="covered" data-hits="1" data-linenumber="97">
<span class="hits">1</span>
- <code class="ruby"> it "clears the password_reset_token" do</code>
+ <code class="ruby"> def each_published</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="102">
+ <li class="covered" data-hits="47" data-linenumber="98">
+ <span class="hits">47</span>
-
- <code class="ruby"> patch :update, id: user.password_reset_token, user: { password: 'newpassword1', password_confirmation: 'newpassword1'}</code>
+ <code class="ruby"> publish_formats.each do |format|</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="103">
+ <li class="covered" data-hits="86" data-linenumber="99">
+ <span class="hits">86</span>
-
- <code class="ruby"> user.reload</code>
+ <code class="ruby"> yield format, publish_block if block_given?</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="104">
+ <li class="never" data-hits="" data-linenumber="100">
- <code class="ruby"> expect(user.password_reset_token).to be_blank</code>
+ <code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="105">
+ <li class="never" data-hits="" data-linenumber="101">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="106">
+ <li class="never" data-hits="" data-linenumber="102">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="107">
+ <li class="covered" data-hits="1" data-linenumber="103">
<span class="hits">1</span>
- <code class="ruby"> it "sets the session[:user_id] user id" do</code>
+ <code class="ruby"> def each_format</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="108">
+ <li class="covered" data-hits="47" data-linenumber="104">
+ <span class="hits">47</span>
+ <code class="ruby"> @block_order.each do |format|</code>
+ </li>
+
+ <li class="covered" data-hits="33" data-linenumber="105">
+ <span class="hits">33</span>
- <code class="ruby"> patch :update, id: user.password_reset_token, user: { password: 'newpassword1', password_confirmation: 'newpassword1'}</code>
+ <code class="ruby"> yield format, @blocks[format] if block_given?</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="109">
+ <li class="never" data-hits="" data-linenumber="106">
- <code class="ruby"> expect(session[:user_id]).to eq(user.id)</code>
+ <code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="110">
+ <li class="never" data-hits="" data-linenumber="107">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="111">
+ <li class="never" data-hits="" data-linenumber="108">
<code class="ruby"></code>
</li>
+ <li class="covered" data-hits="1" data-linenumber="109">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def method_missing(method, *args, &block)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="110">
+ <span class="hits">1</span>
+
+ <code class="ruby"> if block_given?</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="111">
+ <span class="hits">1</span>
+
+ <code class="ruby"> @blocks[method] = block</code>
+ </li>
+
<li class="covered" data-hits="1" data-linenumber="112">
<span class="hits">1</span>
- <code class="ruby"> it "sets the flash[:sucess] message" do</code>
+ <code class="ruby"> @block_order << method unless @block_order.include?(method)</code>
</li>
<li class="missed" data-hits="0" data-linenumber="113">
- <code class="ruby"> patch :update, id: user.password_reset_token, user: { password: 'newpassword1', password_confirmation: 'newpassword1'}</code>
+ <code class="ruby"> elsif args.empty?</code>
</li>
<li class="missed" data-hits="0" data-linenumber="114">
- <code class="ruby"> expect(flash[:success]).to match(/password updated/i)</code>
+ <code class="ruby"> @block_order << method</code>
</li>
<li class="never" data-hits="" data-linenumber="115">
+ <code class="ruby"> else</code>
+ </li>
+
+ <li class="missed" data-hits="0" data-linenumber="116">
+
+
+ <code class="ruby"> super</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="117">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="118">
+
+
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="116">
+ <li class="never" data-hits="" data-linenumber="119">
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="120">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="121">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="caa7ec0029d51eb5c9bde0f679fcfcb448b3cd01">
+ <div class="header">
+ <h3>spec/controllers/application_controller_spec.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>40</b> relevant lines.
+ <span class="green"><b>40</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">require 'spec_helper'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="2">
+
+
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="117">
+ <li class="covered" data-hits="1" data-linenumber="3">
<span class="hits">1</span>
- <code class="ruby"> it "redirects to the todo_lists page" do</code>
+ <code class="ruby">describe ApplicationController, :type => :controller do</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="118">
+ <li class="covered" data-hits="13" data-linenumber="4">
+ <span class="hits">13</span>
+ <code class="ruby"> routes { TrustyCms::Engine.routes }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="5">
- <code class="ruby"> patch :update, id: user.password_reset_token, user: { password: 'newpassword1', password_confirmation: 'newpassword1'}</code>
+
+ <code class="ruby"></code>
</li>
- <li class="missed" data-hits="0" data-linenumber="119">
+ <li class="covered" data-hits="1" data-linenumber="6">
+ <span class="hits">1</span>
+ <code class="ruby"> it 'should initialize the javascript and stylesheets arrays' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="7">
+ <span class="hits">1</span>
- <code class="ruby"> expect(response).to redirect_to(welcome_path)</code>
+ <code class="ruby"> controller.send :set_javascripts_and_stylesheets</code>
</li>
- <li class="never" data-hits="" data-linenumber="120">
+ <li class="covered" data-hits="1" data-linenumber="8">
+ <span class="hits">1</span>
+ <code class="ruby"> expect(controller.send(:instance_variable_get, :@javascripts)).not_to be_nil</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="9">
+ <span class="hits">1</span>
+ <code class="ruby"> expect(controller.send(:instance_variable_get, :@javascripts)).to be_instance_of(Array)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="10">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(controller.send(:instance_variable_get, :@stylesheets)).not_to be_nil</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="11">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(controller.send(:instance_variable_get, :@stylesheets)).to be_instance_of(Array)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="12">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="13">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="14">
+ <span class="hits">1</span>
+
+ <code class="ruby"> describe 'self.template_name' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="15">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it "should return 'index' when the controller action_name is 'index'" do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="16">
+ <span class="hits">1</span>
+
+ <code class="ruby"> allow(controller).to receive(:action_name).and_return('index')</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="17">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(controller.template_name).to eq('index')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="18">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="19">
+ <span class="hits">1</span>
+
+ <code class="ruby"> ['new', 'create'].each do |action|</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="20">
+ <span class="hits">2</span>
+
+ <code class="ruby"> it "should return 'new' when the action_name is #{action}" do</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="21">
+ <span class="hits">2</span>
+
+ <code class="ruby"> allow(controller).to receive(:action_name).and_return(action)</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="22">
+ <span class="hits">2</span>
+
+ <code class="ruby"> expect(controller.template_name).to eq('new')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="23">
+
+
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="121">
+ <li class="never" data-hits="" data-linenumber="24">
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="25">
+ <span class="hits">1</span>
+
+ <code class="ruby"> ['edit', 'update'].each do |action|</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="26">
+ <span class="hits">2</span>
+
+ <code class="ruby"> it "should return 'edit' when the action_name is #{action}" do</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="27">
+ <span class="hits">2</span>
+
+ <code class="ruby"> allow(controller).to receive(:action_name).and_return(action)</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="28">
+ <span class="hits">2</span>
+
+ <code class="ruby"> expect(controller.template_name).to eq('edit')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="29">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="30">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="31">
+ <span class="hits">1</span>
+
+ <code class="ruby"> ['remove', 'destroy'].each do |action|</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="32">
+ <span class="hits">2</span>
+
+ <code class="ruby"> it "should return 'remove' when the action_name is #{action}" do</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="33">
+ <span class="hits">2</span>
+
+ <code class="ruby"> allow(controller).to receive(:action_name).and_return(action)</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="34">
+ <span class="hits">2</span>
+
+ <code class="ruby"> expect(controller.template_name).to eq('remove')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="35">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="36">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="37">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it "should return 'show' when the action_name is show" do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="38">
+ <span class="hits">1</span>
+
+ <code class="ruby"> allow(controller).to receive(:action_name).and_return('show')</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="39">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(controller.template_name).to eq('show')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="40">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="41">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it "should return the action_name when the action_name is a non-standard name" do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="42">
+ <span class="hits">1</span>
+
+ <code class="ruby"> allow(controller).to receive(:action_name).and_return('other')</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="43">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(controller.template_name).to eq('other')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="44">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="45">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="46">
+
+
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="122">
+ <li class="covered" data-hits="1" data-linenumber="47">
+ <span class="hits">1</span>
+ <code class="ruby"> describe "set_timezone" do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="48">
+ <span class="hits">1</span>
+ <code class="ruby"> it "should use TrustyCms::Config['local.timezone']" do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="49">
+ <span class="hits">1</span>
+
+ <code class="ruby"> TrustyCms::Config['local.timezone'] = 'Kuala Lumpur'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="50">
+ <span class="hits">1</span>
+
+ <code class="ruby"> controller.send(:set_timezone)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="51">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(Time.zone.name).to eq('Kuala Lumpur')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="52">
+
+
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="123">
+ <li class="never" data-hits="" data-linenumber="53">
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="124">
+ <li class="covered" data-hits="1" data-linenumber="54">
+ <span class="hits">1</span>
+ <code class="ruby"> it "should default to config.time_zone" do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="55">
+ <span class="hits">1</span>
+ <code class="ruby"> TrustyCms::Config.initialize_cache # to clear out setting from previous tests</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="56">
+ <span class="hits">1</span>
+
+ <code class="ruby"> controller.send(:set_timezone)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="57">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(Time.zone.name).to eq('UTC')</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="58">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="59">
+
+
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="125">
+ <li class="never" data-hits="" data-linenumber="60">
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="337cbe163bc8bfdb5179ca7658af10ab02e6c229">
+ <div class="header">
+ <h3>spec/controllers/users_controller_spec.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>3</b> relevant lines.
+ <span class="green"><b>3</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">require 'spec_helper'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="2">
+
+
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="126">
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+ <code class="ruby">describe Admin::UsersController, :type => :controller do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="4">
+ <span class="hits">1</span>
+ <code class="ruby"> routes { TrustyCms::Engine.routes }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="5">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="6">
+
+
<code class="ruby">end</code>
</li>
</ol>
</pre>
</div>
+ <div class="source_table" id="a27fd50274e4ef14baece85f6fc1ef2dff24481e">
+ <div class="header">
+ <h3>spec/controllers/welcome_controller_spec.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>3</b> relevant lines.
+ <span class="green"><b>3</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">require 'spec_helper'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="2">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+
+ <code class="ruby">RSpec.describe Admin::WelcomeController, :type => :controller do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="4">
+ <span class="hits">1</span>
+
+ <code class="ruby"> routes { TrustyCms::Engine.routes }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="5">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="6">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
<div class="source_table" id="b8f4cd120e1d67bc8beac165fcf0bc0aa4481001">
<div class="header">
<h3>spec/factories/layout.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
<div>
@@ -6042,12 +14814,12 @@
<span class="hits">1</span>
<code class="ruby"> password 'password'</code>
</li>
- <li class="covered" data-hits="12" data-linenumber="7">
- <span class="hits">12</span>
+ <li class="covered" data-hits="1" data-linenumber="7">
+ <span class="hits">1</span>
<code class="ruby"> password_confirmation { password }</code>
</li>
<li class="never" data-hits="" data-linenumber="8">
@@ -6220,18 +14992,2616 @@
</ol>
</pre>
</div>
+ <div class="source_table" id="5d70a4be91101af4532a395a46c8d595d80b8fb0">
+ <div class="header">
+ <h3>spec/features/admin_login_spec.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>52</b> relevant lines.
+ <span class="green"><b>52</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">require 'rails_helper'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="2">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+
+ <code class="ruby">describe 'Administration Interface Login' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="4">
+ <span class="hits">1</span>
+
+ <code class="ruby"> fixtures :users</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="5">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="6">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'shows a login page' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="7">
+ <span class="hits">1</span>
+
+ <code class="ruby"> visit '/'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="8">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="9">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_field 'Username or E-mail Address'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="10">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_field 'Password'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="11">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_button 'Login'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="12">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="13">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="14">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'shows an error if the username is wrong' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="15">
+ <span class="hits">1</span>
+
+ <code class="ruby"> log_in_as 'nonexistent_username'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="16">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="17">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(find('#error')).to have_content "Invalid username, e-mail address, or password."</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="18">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="19">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="20">
+ <span class="hits">1</span>
+
+ <code class="ruby"> describe 'as an admin user' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="21">
+ <span class="hits">1</span>
+
+ <code class="ruby"> before(:each) do</code>
+ </li>
+
+ <li class="covered" data-hits="7" data-linenumber="22">
+ <span class="hits">7</span>
+
+ <code class="ruby"> @admin = users(:captain_janeway)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="23">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="24">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="25">
+ <span class="hits">1</span>
+
+ <code class="ruby"> context 'after login' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="26">
+ <span class="hits">1</span>
+
+ <code class="ruby"> before(:each) do</code>
+ </li>
+
+ <li class="covered" data-hits="6" data-linenumber="27">
+ <span class="hits">6</span>
+
+ <code class="ruby"> log_in_as @admin.login</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="28">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="29">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="30">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'shows the admin interface' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="31">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_content "Logged in as"</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="32">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="33">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="34">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'has correct links in header' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="35">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_link @admin.name, href: '/admin/preferences/edit'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="36">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_link 'Logout', href: '/admin/logout'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="37">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_link 'View Site', href: '/'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="38">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="39">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="40">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'has correct links in navigation' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="41">
+ <span class="hits">1</span>
+
+ <code class="ruby"> within '#navigation' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="42">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_link "Content", href: '/admin/pages'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="43">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_link "Design", href: '/admin/layouts'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="44">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_link "Settings", href: '/admin/configuration'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="45">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="46">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="47">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="48">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'outputs table header as html' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="49">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_selector "table#pages th.name"</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="50">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="51">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="52">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="53">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'can navigate to create new page' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="54">
+ <span class="hits">1</span>
+
+ <code class="ruby"> visit '/admin/pages/new'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="55">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_selector "h1", text: "New Page"</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="56">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="57">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="58">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'can log out' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="59">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_link "Logout"</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="60">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_content "You are now logged out."</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="61">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="62">
+ <span class="hits">1</span>
+
+ <code class="ruby"> visit '/admin/pages/new'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="63">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_content "Please Login"</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="64">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="65">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="66">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="67">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'shows an error if the password is wrong' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="68">
+ <span class="hits">1</span>
+
+ <code class="ruby"> log_in_as @admin.login, 'passwordwhoops'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="69">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="70">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(find('#error')).to have_content "Invalid username, e-mail address, or password."</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="71">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="72">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="73">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="74">
+ <span class="hits">1</span>
+
+ <code class="ruby"> describe 'as a regular user after login' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="75">
+ <span class="hits">1</span>
+
+ <code class="ruby"> before(:each) do</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="76">
+ <span class="hits">2</span>
+
+ <code class="ruby"> @user = users(:neelix)</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="77">
+ <span class="hits">2</span>
+
+ <code class="ruby"> log_in_as @user.login</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="78">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="79">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="80">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'can log in to the admin interface' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="81">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_content "Logged in as"</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="82">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="83">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="84">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'has correct links in navigation' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="85">
+ <span class="hits">1</span>
+
+ <code class="ruby"> within '#navigation' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="86">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_link "Content", href: '/admin/pages'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="87">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).not_to have_link "Design"</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="88">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_link "Settings", href: '/admin/configuration'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="89">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="90">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="91">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="92">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="a413cd7cc1724408d7a525553d4834265f04885e">
+ <div class="header">
+ <h3>spec/features/config_spec.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>21</b> relevant lines.
+ <span class="green"><b>21</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">require 'rails_helper'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="2">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+
+ <code class="ruby">describe 'Configuration (Settings)' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="4">
+ <span class="hits">1</span>
+
+ <code class="ruby"> fixtures :users</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="5">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="6">
+ <span class="hits">1</span>
+
+ <code class="ruby"> before(:each) do</code>
+ </li>
+
+ <li class="covered" data-hits="3" data-linenumber="7">
+ <span class="hits">3</span>
+
+ <code class="ruby"> @admin = users(:captain_janeway)</code>
+ </li>
+
+ <li class="covered" data-hits="3" data-linenumber="8">
+ <span class="hits">3</span>
+
+ <code class="ruby"> log_in_as @admin.login</code>
+ </li>
+
+ <li class="covered" data-hits="3" data-linenumber="9">
+ <span class="hits">3</span>
+
+ <code class="ruby"> click_link 'Settings'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="10">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="11">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="12">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'has personal and site preferences' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="13">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_content 'Personal Preferences'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="14">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_content 'Configuration'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="15">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="16">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="17">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'lets you edit your personal preferences' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="18">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_button 'Edit Preferences'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="19">
+ <span class="hits">1</span>
+
+ <code class="ruby"> fill_in 'Name', with: 'Captain Kathryn Janeway'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="20">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_button 'Save Changes'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="21">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="22">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_content 'Name Captain Kathryn Janeway'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="23">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="24">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="25">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'lets you edit the site preferences' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="26">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_button 'Edit Configuration'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="27">
+ <span class="hits">1</span>
+
+ <code class="ruby"> fill_in 'Site Title', with: 'My Special Site'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="28">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_button 'Save Changes'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="29">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="30">
+ <span class="hits">1</span>
+
+ <code class="ruby"> within '#site_title' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="31">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_content 'My Special Site'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="32">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="33">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="34">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="ab78dbd6e5a827bfa8db3f97d98882ca4edbba01">
+ <div class="header">
+ <h3>spec/features/javascript_smoke_spec.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>30</b> relevant lines.
+ <span class="green"><b>30</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">require 'rails_helper'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="2">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+
+ <code class="ruby">describe 'Editing using javascript features', js: true do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="4">
+ <span class="hits">1</span>
+
+ <code class="ruby"> fixtures :users</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="5">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="6">
+ <span class="hits">1</span>
+
+ <code class="ruby"> before(:each) do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="7">
+ <span class="hits">1</span>
+
+ <code class="ruby"> @admin = users(:captain_janeway)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="8">
+ <span class="hits">1</span>
+
+ <code class="ruby"> log_in_as @admin.login</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="9">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="10">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="11">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'edits all sorts of content' do</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="12">
+
+
+ <code class="ruby"> # Create a new homepage</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="13">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_link 'New Homepage'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="14">
+ <span class="hits">1</span>
+
+ <code class="ruby"> fill_in 'Page Title', with: 'Voyager Home'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="15">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_button 'Create Page'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="16">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="17">
+
+
+ <code class="ruby"> # Create a new child page of the home page</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="18">
+
+
+ <code class="ruby"> # This is failing on Travis, but not on my box. Just trying to edit to push a new version.</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="19">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_link 'Add Child'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="20">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_link 'Normal Page'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="21">
+ <span class="hits">1</span>
+
+ <code class="ruby"> fill_in 'Page Title', with: 'Command Center'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="22">
+ <span class="hits">1</span>
+
+ <code class="ruby"> page.execute_script("CKEDITOR.instances['part_body_content'].setData('You are on the bridge.');")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="23">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="24">
+
+
+ <code class="ruby"> # Add a custom page part</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="25">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_link 'Add Part'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="26">
+ <span class="hits">1</span>
+
+ <code class="ruby"> fill_in 'Name', with: 'footer'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="27">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_button 'Add Part'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="28">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_selector '#tabs #tab_footer'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="29">
+ <span class="hits">1</span>
+
+ <code class="ruby"> page.execute_script("CKEDITOR.instances['part_footer_content'].setData('You are on the bridge.');")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="30">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="31">
+
+
+ <code class="ruby"> # Switch tabs</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="32">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_link 'tab_body'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="33">
+ <span class="hits">1</span>
+
+ <code class="ruby"> result = evaluate_script("CKEDITOR.instances['part_body_content'].getData()")</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="34">
+ <span class="hits">1</span>
+
+ <code class="ruby"> puts result</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="35">
+ <span class="hits">1</span>
+
+ <code class="ruby"> result.should include("You are on the bridge.")</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="36">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to_not have_field 'part_footer_content'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="37">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="38">
+
+
+ <code class="ruby"> # Remove a tab</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="39">
+ <span class="hits">1</span>
+
+ <code class="ruby"> find('#tab_extended .close').click</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="40">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to_not have_content 'extended'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="41">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="42">
+
+
+ <code class="ruby"> # Preview</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="43">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_button 'Preview'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="44">
+ <span class="hits">1</span>
+
+ <code class="ruby"> within_frame 'page-preview' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="45">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_content 'You are on the bridge.'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="46">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to_not have_content 'New Page'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="47">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="48">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="49">
+
+
+ <code class="ruby"> # TODO: This is currently broken by treetable, but I don't understand how it works well enough to fix. Will consult carols10cents.</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="50">
+
+
+ <code class="ruby"> # Save and check that all changes were saved</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="51">
+
+
+ <code class="ruby"> #click_button 'Save Changes'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="52">
+
+
+ <code class="ruby"> #click_link 'Command Center'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="53">
+
+
+ <code class="ruby"> #expect(page).to_not have_content 'extended'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="54">
+
+
+ <code class="ruby"> #expect(page).to have_content 'footer'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="55">
+
+
+ <code class="ruby"> #expect(page).to have_field 'part_body_content', with: 'You are on the bridge.'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="56">
+
+
+ <code class="ruby"> #click_link 'tab_footer'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="57">
+
+
+ <code class="ruby"> #expect(page).to have_field 'part_footer_content', with: 'Copyright Voyager 2371'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="58">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="59">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="7570781db4c3155e965463b658470da596800bab">
+ <div class="header">
+ <h3>spec/features/layouts_spec.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>33</b> relevant lines.
+ <span class="green"><b>33</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">require 'rails_helper'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="2">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+
+ <code class="ruby">describe 'Layouts (Design)' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="4">
+ <span class="hits">1</span>
+
+ <code class="ruby"> fixtures :users</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="5">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="6">
+ <span class="hits">1</span>
+
+ <code class="ruby"> before(:each) do</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="7">
+ <span class="hits">4</span>
+
+ <code class="ruby"> @admin = users(:captain_janeway)</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="8">
+ <span class="hits">4</span>
+
+ <code class="ruby"> log_in_as @admin.login</code>
+ </li>
+
+ <li class="covered" data-hits="4" data-linenumber="9">
+ <span class="hits">4</span>
+
+ <code class="ruby"> click_link 'Design'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="10">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="11">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="12">
+ <span class="hits">1</span>
+
+ <code class="ruby"> context 'without any layouts' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="13">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'says it has no layouts' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="14">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_content 'No Layouts'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="15">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="16">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="17">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'lets you add a layout' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="18">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_link 'New Layout'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="19">
+ <span class="hits">1</span>
+
+ <code class="ruby"> fill_in 'Name', with: 'Petunias'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="20">
+ <span class="hits">1</span>
+
+ <code class="ruby"> fill_in 'Body', with: 'Wisteria'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="21">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_button 'Create Layout'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="22">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_content 'Petunias'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="23">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="24">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="25">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="26">
+ <span class="hits">1</span>
+
+ <code class="ruby"> context 'with a layout' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="27">
+ <span class="hits">1</span>
+
+ <code class="ruby"> before(:each) do</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="28">
+ <span class="hits">2</span>
+
+ <code class="ruby"> Layout.create!(name: 'Petunias', content: 'Wisteria')</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="29">
+ <span class="hits">2</span>
+
+ <code class="ruby"> visit '/admin/layouts'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="30">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="31">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="32">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'lets you edit the layout' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="33">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_link 'Petunias'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="34">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_content 'Edit Layout'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="35">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_field 'Name', with: 'Petunias'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="36">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_field 'Body', with: 'Wisteria'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="37">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_button 'Save Changes'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="38">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_content 'Last Updated by Kathryn Janeway'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="39">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="40">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="41">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'lets you remove the layout' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="42">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_link 'Remove'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="43">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_content 'Are you sure you want to permanently remove the following layout?'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="44">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_button 'Delete Layout'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="45">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_content 'No Layouts'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="46">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_link 'New Layout'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="47">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="48">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="49">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="d4d1a930f2f47b0ce0846efa1c917ebdf0bf2c69">
+ <div class="header">
+ <h3>spec/features/pages_spec.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>34</b> relevant lines.
+ <span class="green"><b>34</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">require 'rails_helper'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="2">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+
+ <code class="ruby">describe 'Pages' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="4">
+ <span class="hits">1</span>
+
+ <code class="ruby"> fixtures :users</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="5">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="6">
+ <span class="hits">1</span>
+
+ <code class="ruby"> before(:each) do</code>
+ </li>
+
+ <li class="covered" data-hits="3" data-linenumber="7">
+ <span class="hits">3</span>
+
+ <code class="ruby"> @admin = users(:captain_janeway)</code>
+ </li>
+
+ <li class="covered" data-hits="3" data-linenumber="8">
+ <span class="hits">3</span>
+
+ <code class="ruby"> log_in_as @admin.login</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="9">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="10">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="11">
+ <span class="hits">1</span>
+
+ <code class="ruby"> context 'without any pages' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="12">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'can create a new homepage' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="13">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_link 'New Homepage'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="14">
+ <span class="hits">1</span>
+
+ <code class="ruby"> fill_in 'Page Title', with: 'Voyager Home'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="15">
+ <span class="hits">1</span>
+
+ <code class="ruby"> fill_in 'Breadcrumb', with: 'Home'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="16">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_button 'Create Page'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="17">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="18">
+ <span class="hits">1</span>
+
+ <code class="ruby"> within 'table#pages' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="19">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_selector 'tbody tr', count: 1</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="20">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_link 'Voyager Home'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="21">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_link 'Add Child'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="22">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_link 'Normal Page'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="23">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_link 'File Not Found'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="24">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_link 'Remove'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="25">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="26">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="27">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="28">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="29">
+ <span class="hits">1</span>
+
+ <code class="ruby"> context 'with only a homepage' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="30">
+ <span class="hits">1</span>
+
+ <code class="ruby"> before(:each) do</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="31">
+ <span class="hits">2</span>
+
+ <code class="ruby"> Page.create!(title: 'Voyager Home', breadcrumb: 'Home', slug: '/')</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="32">
+ <span class="hits">2</span>
+
+ <code class="ruby"> visit '/admin/pages'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="33">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="34">
+
+
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="35">
+
+
+ <code class="ruby"> </code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="36">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'lets you edit the homepage' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="37">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_link 'Voyager Home'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="38">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="39">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_field 'Page Title', with: 'Voyager Home'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="40">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_button 'Save Changes'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="41">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_content 'Last Updated by Kathryn Janeway'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="42">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="43">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="44">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'lets you remove the homepage' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="45">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_link 'Remove'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="46">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="47">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_content 'Are you sure you want to permanently remove the following Page?'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="48">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="49">
+ <span class="hits">1</span>
+
+ <code class="ruby"> click_button 'Delete Page'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="50">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="51">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_content 'No Pages'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="52">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(page).to have_link 'New Homepage'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="53">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="54">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="55">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="f651b1e0d6b03b639bb1910679349dcb5c4906d8">
+ <div class="header">
+ <h3>spec/models/layout_spec.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>19</b> relevant lines.
+ <span class="green"><b>19</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">require 'spec_helper'</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="2">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+
+ <code class="ruby">describe Layout do</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="4">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="5">
+ <span class="hits">1</span>
+
+ <code class="ruby"> let(:layout){ FactoryGirl.build(:layout) }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="6">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="7">
+ <span class="hits">1</span>
+
+ <code class="ruby"> describe 'name' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="8">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'is invalid when blank' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="9">
+ <span class="hits">1</span>
+
+ <code class="ruby"> layout = FactoryGirl.build(:layout, name: '')</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="10">
+ <span class="hits">1</span>
+
+ <code class="ruby"> layout.valid?</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="11">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(layout.errors[:name]).to include("this must not be blank")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="12">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="13">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="14">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'should validate uniqueness of' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="15">
+ <span class="hits">1</span>
+
+ <code class="ruby"> layout = FactoryGirl.build(:layout, name: 'Normal', content: "Content!")</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="16">
+ <span class="hits">1</span>
+
+ <code class="ruby"> layout.save!</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="17">
+ <span class="hits">1</span>
+
+ <code class="ruby"> other = FactoryGirl.build(:layout, name: 'Normal', content: "Content!")</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="18">
+ <span class="hits">2</span>
+
+ <code class="ruby"> expect{other.save!}.to raise_error(ActiveRecord::RecordInvalid)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="19">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="20">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="21">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it 'should validate length of' do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="22">
+ <span class="hits">1</span>
+
+ <code class="ruby"> layout = FactoryGirl.build(:layout, name: 'x' * 100)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="23">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(layout.errors[:name]).to be_blank</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="24">
+ <span class="hits">1</span>
+
+ <code class="ruby"> layout = FactoryGirl.build(:layout, name: 'x' * 101)</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="25">
+ <span class="hits">2</span>
+
+ <code class="ruby"> expect{layout.save!}.to raise_error(ActiveRecord::RecordInvalid)</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="26">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(layout.errors[:name]).to include("this must not be longer than 100 characters")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="27">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="28">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="29">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="5e6e398d1f9a901307ea91dab9ee535aa8c9a444">
+ <div class="header">
+ <h3>spec/rails_helper.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>24</b> relevant lines.
+ <span class="green"><b>24</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="never" data-hits="" data-linenumber="1">
+
+
+ <code class="ruby"># This file is copied to spec/ when you run 'rails generate rspec:install'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="2">
+ <span class="hits">1</span>
+
+ <code class="ruby">ENV["RAILS_ENV"] ||= 'test'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+
+ <code class="ruby">require 'spec_helper'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="4">
+ <span class="hits">1</span>
+
+ <code class="ruby">require 'rspec/rails'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="5">
+ <span class="hits">1</span>
+
+ <code class="ruby">require 'capybara/rails'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="6">
+ <span class="hits">1</span>
+
+ <code class="ruby">require 'capybara/poltergeist'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="7">
+ <span class="hits">1</span>
+
+ <code class="ruby">Capybara.javascript_driver = :poltergeist</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="8">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="9">
+ <span class="hits">1</span>
+
+ <code class="ruby">Capybara.register_driver :poltergeist do |app|</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="10">
+ <span class="hits">1</span>
+
+ <code class="ruby"> Capybara::Poltergeist::Driver.new(app, timeout: 60)</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="11">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="12">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="13">
+ <span class="hits">1</span>
+
+ <code class="ruby">require 'database_cleaner'</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="14">
+ <span class="hits">1</span>
+
+ <code class="ruby">DatabaseCleaner.strategy = :truncation, {except: %w[config]}</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="15">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="16">
+
+
+ <code class="ruby"># Requires supporting ruby files with custom matchers and macros, etc, in</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="17">
+
+
+ <code class="ruby"># spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="18">
+
+
+ <code class="ruby"># run as spec files by default. This means that files in spec/support that end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="19">
+
+
+ <code class="ruby"># in _spec.rb will both be required and run as specs, causing the specs to be</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="20">
+
+
+ <code class="ruby"># run twice. It is recommended that you do not name files matching this glob to</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="21">
+
+
+ <code class="ruby"># end with _spec.rb. You can configure this pattern with with the --pattern</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="22">
+
+
+ <code class="ruby"># option on the command line or in ~/.rspec, .rspec or `.rspec-local`.</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="23">
+ <span class="hits">1</span>
+
+ <code class="ruby">Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="24">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="25">
+ <span class="hits">1</span>
+
+ <code class="ruby">RSpec.configure do |config|</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="26">
+
+
+ <code class="ruby"> # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="27">
+ <span class="hits">1</span>
+
+ <code class="ruby"> config.fixture_path = "#{::TRUSTY_CMS_ROOT}/spec/fixtures"</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="28">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="29">
+
+
+ <code class="ruby"> # If you're not using ActiveRecord, or you'd prefer not to run each of your</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="30">
+
+
+ <code class="ruby"> # examples within a transaction, remove the following line or assign false</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="31">
+
+
+ <code class="ruby"> # instead of true.</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="32">
+ <span class="hits">1</span>
+
+ <code class="ruby"> config.use_transactional_fixtures = false</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="33">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="34">
+
+
+ <code class="ruby"> # RSpec Rails can automatically mix in different behaviours to your tests</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="35">
+
+
+ <code class="ruby"> # based on their file location, for example enabling you to call `get` and</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="36">
+
+
+ <code class="ruby"> # `post` in specs under `spec/controllers`.</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="37">
+
+
+ <code class="ruby"> #</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="38">
+
+
+ <code class="ruby"> # You can disable this behaviour by removing the line below, and instead</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="39">
+
+
+ <code class="ruby"> # explicitly tag your specs with their type, e.g.:</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="40">
+
+
+ <code class="ruby"> #</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="41">
+
+
+ <code class="ruby"> # RSpec.describe UsersController, :type => :controller do</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="42">
+
+
+ <code class="ruby"> # # ...</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="43">
+
+
+ <code class="ruby"> # end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="44">
+
+
+ <code class="ruby"> #</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="45">
+
+
+ <code class="ruby"> # The different available types are documented in the features, such as in</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="46">
+
+
+ <code class="ruby"> # https://relishapp.com/rspec/rspec-rails/docs</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="47">
+ <span class="hits">1</span>
+
+ <code class="ruby"> config.infer_spec_type_from_file_location!</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="48">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="49">
+ <span class="hits">1</span>
+
+ <code class="ruby"> config.before(:suite) do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="50">
+ <span class="hits">1</span>
+
+ <code class="ruby"> TrustyCms::Config.initialize_cache</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="51">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="52">
+ <span class="hits">1</span>
+
+ <code class="ruby"> configs = [</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="53">
+
+
+ <code class="ruby"> ['admin.title', 'TrustyCMS'],</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="54">
+
+
+ <code class="ruby"> ['admin.subtitle', 'Publishing for Small Teams'],</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="55">
+
+
+ <code class="ruby"> ['defaults.page.parts', 'body, extended'],</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="56">
+
+
+ <code class="ruby"> ['defaults.page.status', 'Draft'],</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="57">
+
+
+ <code class="ruby"> ['defaults.page.filter', nil],</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="58">
+
+
+ <code class="ruby"> ['defaults.page.fields', 'Keywords, Description'],</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="59">
+
+
+ <code class="ruby"> ['defaults.snippet.filter', nil],</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="60">
+
+
+ <code class="ruby"> ['session_timeout', '1209600'], # 2.weeks.to_s ????</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="61">
+
+
+ <code class="ruby"> ['default_locale', 'en'],</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="62">
+
+
+ <code class="ruby"> ]</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="63">
+ <span class="hits">1</span>
+
+ <code class="ruby"> configs.each do |key, value|</code>
+ </li>
+
+ <li class="covered" data-hits="9" data-linenumber="64">
+ <span class="hits">9</span>
+
+ <code class="ruby"> c = TrustyCms::Config.find_or_initialize_by(key: key)</code>
+ </li>
+
+ <li class="covered" data-hits="9" data-linenumber="65">
+ <span class="hits">9</span>
+
+ <code class="ruby"> c.value = value</code>
+ </li>
+
+ <li class="covered" data-hits="9" data-linenumber="66">
+ <span class="hits">9</span>
+
+ <code class="ruby"> c.save</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="67">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="68">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="69">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="70">
+ <span class="hits">1</span>
+
+ <code class="ruby"> config.after(:each) do</code>
+ </li>
+
+ <li class="covered" data-hits="28" data-linenumber="71">
+ <span class="hits">28</span>
+
+ <code class="ruby"> DatabaseCleaner.clean</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="72">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="73">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
+ <div class="source_table" id="e26ef2de8407666da2a4b16334e43c210a4e8735">
+ <div class="header">
+ <h3>spec/routing/welcome_routing_spec.rb</h3>
+ <h4><span class="green">100.0 %</span> covered</h4>
+ <div>
+ <b>8</b> relevant lines.
+ <span class="green"><b>8</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
+ </div>
+ </div>
+
+ <pre>
+ <ol>
+
+ <li class="covered" data-hits="1" data-linenumber="1">
+ <span class="hits">1</span>
+
+ <code class="ruby">require "rails_helper"</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="2">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="3">
+ <span class="hits">1</span>
+
+ <code class="ruby">RSpec.describe "routes for Welcome", :type => :routing do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="4">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it "routes /admin/welcome to the admin/welcome controller" do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="5">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(get("/admin/welcome")).</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="6">
+
+
+ <code class="ruby"> to route_to("admin/welcome#index")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="7">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="8">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="9">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it "routes /admin/login to the admin/welcome controller" do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="10">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(get("/admin/login")).</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="11">
+
+
+ <code class="ruby"> to route_to("admin/welcome#login")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="12">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="13">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="14">
+ <span class="hits">1</span>
+
+ <code class="ruby"> it "routes /admin/logout to the admin/welcome controller" do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="15">
+ <span class="hits">1</span>
+
+ <code class="ruby"> expect(get("/admin/logout")).</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="16">
+
+
+ <code class="ruby"> to route_to("admin/welcome#logout")</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="17">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="18">
+
+
+ <code class="ruby">end</code>
+ </li>
+
+ </ol>
+ </pre>
+</div>
+
<div class="source_table" id="992b2e5d02f76777327edeb5263d89e2cab32d72">
<div class="header">
<h3>spec/support/custom_actions.rb</h3>
- <h4><span class="red">20.0 %</span> covered</h4>
+ <h4><span class="green">100.0 %</span> covered</h4>
<div>
<b>5</b> relevant lines.
- <span class="green"><b>1</b> lines covered</span> and
- <span class="red"><b>4</b> lines missed.</span>
+ <span class="green"><b>5</b> lines covered</span> and
+ <span class="red"><b>0</b> lines missed.</span>
</div>
</div>
<pre>
<ol>
@@ -6258,29 +17628,29 @@
<span class="hits">1</span>
<code class="ruby">def log_in_as(login, plaintext_password = 'password')</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="5">
+ <li class="covered" data-hits="21" data-linenumber="5">
+ <span class="hits">21</span>
-
<code class="ruby"> visit '/'</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="6">
+ <li class="covered" data-hits="21" data-linenumber="6">
+ <span class="hits">21</span>
-
<code class="ruby"> fill_in 'username_or_email', with: login</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="7">
+ <li class="covered" data-hits="21" data-linenumber="7">
+ <span class="hits">21</span>
-
<code class="ruby"> fill_in 'password', with: plaintext_password</code>
</li>
- <li class="missed" data-hits="0" data-linenumber="8">
-
+ <li class="covered" data-hits="21" data-linenumber="8">
+ <span class="hits">21</span>
<code class="ruby"> click_on 'Login'</code>
</li>
<li class="never" data-hits="" data-linenumber="9">