Diff of /trunk/landingpage/index.html [r135] .. [r136]  Maximize  Restore

Switch to unified view

a/trunk/landingpage/index.html b/trunk/landingpage/index.html
1
<!DOCTYPE html>
1
<!-- Pleace this snippet right after opening the head tag to make it work properly -->
2
<html lang="en">
2
3
  <head>
3
<!-- This code is licensed under GNU GPL v3 -->
4
    <meta charset="utf-8">
4
<!-- You are allowed to freely copy, distribute and use this code, but removing author credit is strictly prohibited -->
5
    <meta name="Description" content="CfUnit free and open-source unit testing framework. Motivated by absence of 'good and free' IEC61131-3 automated unit tests frameworks/solutions. Written in Structured Text for CODESYS based PLC systems. Released under MIT-License">
5
<!-- Generated by http://insider.zone/tools/client-side-url-redirect-generator/ -->
6
    <meta name="keywords" content="MIT-License,CfUnit,free,MIT,open-source,open,source,automated,unit,test,tests,testing,framework,IEC61131-3,61131-3,61131,Structured Text,ST,CODESYS,CoDeSyS,PLC,POU,OOP,POU-oriented Unit Testing of IEC 61131-3 Control Software,IEC unit test,IEC unit-tests,Testing Procedure for IEC 61131-3 Control Software,Management of Unit Tests,Automated Software Testing">
6
7
    <link rel="shortcut icon" href="https://forge.codesys.com/_ew_resources/theme/ownforgetheme/images/favicon.ico" />
7
<!-- REDIRECTING STARTS -->
8
    <title>CfUnit &mdash; An open source unit testing framework for CODESYS</title>
8
<link rel="canonical" href="https://forge.codesys.com/svn/prj,cfunit,code/landingpage/index.html?raw"/>
9
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
9
<noscript>
10
    <link href="css/bootstrap.min.css" rel="stylesheet">
10
    <meta http-equiv="refresh" content="0;URL=https://forge.codesys.com/svn/prj,cfunit,code/landingpage/index.html?raw">
11
    <link href="css/lighter2.css" rel="stylesheet">
11
</noscript>
12
  </head>
12
<!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]-->
13
  <body>
13
<script type="text/javascript">
14
14
    var url = "https://forge.codesys.com/svn/prj,cfunit,code/landingpage/index.html?raw";
15
    <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
15
    if(typeof IE_fix != "undefined") // IE8 and lower fix to pass the http referer
16
      <div class="container">
16
    {
17
        <div class="navbar-header">
17
        document.write("redirecting..."); // Don't remove this line or appendChild() will fail because it is called before document.onload to make the redirect as fast as possible. Nobody will see this text, it is only a tech fix.
18
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
18
        var referLink = document.createElement("a");
19
            <span class="icon-bar"></span>
19
        referLink.href = url;
20
            <span class="icon-bar"></span>
20
        document.body.appendChild(referLink);
21
            <span class="icon-bar"></span>
21
        referLink.click();
22
          </button>
22
    }
23
          <a class="navbar-brand nav-link" href="#top">
23
    else { window.location.replace(url); } // All other browsers
24
            <img src="img/logo_codesys_forge.png" class="card-img-top" alt="CODESYS" width="100" height="50">
24
</script>
25
            CfUnit
25
<!-- Credit goes to http://insider.zone/ -->
26
            <img src="img/tdd.png" class="card-img-top" alt="CfUnit" width="50" height="50">
26
<!-- REDIRECTING ENDS -->
27
          </a>
28
        </div> <!-- /.navbar-header -->
29
30
        <div class="collapse navbar-collapse navbar-ex1-collapse">
31
          <ul class="nav navbar-nav navbar-right">
32
            <li><a href="#features" class="nav-link">Features</a></li>
33
            <li><a href="#tour-head" class="nav-link">Tour</a></li>
34
            <li><a href="#faqs" class="nav-link">FAQs </a></li>
35
            <li><a href="#Download">Download </a></li>
36
            <li><a href="#about" class="nav-link">About</a></li>
37
          </ul>
38
        </div> <!-- /.navbar-collapse -->
39
      </div> <!-- /.container -->
40
    </nav> <!-- /.navbar -->
41
42
    <div id="top" class="jumbotron">
43
      <div class="container">
44
        <h1>CfUnit &mdash; CODESYS Forge Unit Testing framework</h1>
45
        <h2>In short 'CfUnit' is a free open-source unit testing framework, motivated by absence of 'good and free' IEC61131-3 automated unit-testing solutions. Written in Structured Text for CODESYS based PLC systems. Released under MIT-License</h2>
46
        <p><a class="btn btn-primary btn-lg" href="#Download">Download <span class="glyphicon glyphicon-circle-arrow-right"></span></a></p>
47
      </div> <!-- /.container -->
48
    </div> <!-- /.jumbotron -->
49
50
51
    <div class="container">
52
      <h3 id="features" class="subhead">Features</h3>
53
      <div class="row benefits">
54
        <div class="col-md-4 col-sm-6 benefit">
55
          <div class="benefit-ball">
56
            <span class="glyphicon glyphicon-star"></span>
57
          </div>
58
          <h3>Easy</h3>
59
          Download,<br>Install,<br>Reference,<br>Ready!
60
        </div> <!-- /.benefit -->
61
        <div class="col-md-4 col-sm-6 benefit">
62
          <div class="benefit-ball">
63
            <span class="glyphicon glyphicon-ok"></span>
64
          </div>
65
          <h3>Powerful</h3>
66
          Higher productivity,<br>Fewer bugs,<br>Cleaner code,<br>Self-documenting</p>
67
        </div> <!-- /.benefit -->
68
        <div class="col-md-4 col-sm-6 benefit">
69
          <div class="benefit-ball">
70
            <span class="glyphicon glyphicon-heart"></span>
71
          </div>
72
          <h3>Free!</h3>
73
          <p>MIT-Licensed</p>
74
        </div> <!-- /.benefit -->
75
      </div> <!-- /.row -->
76
    </div> <!-- /.container -->
77
    
78
    
79
    <div class="container-alternate">
80
      <div class="container">
81
        <h3 id="tour-head" class="subhead">Tour</h3>
82
        <div class="row">
83
          <div class="col-md-12">
84
            <div id="tour" class="carousel slide">
85
              <ol class="carousel-indicators">
86
                <li data-target="#tour" data-slide-to="0" class="active"></li>
87
                <li data-target="#tour" data-slide-to="1"></li>
88
                <li data-target="#tour" data-slide-to="2"></li>
89
                <li data-target="#tour" data-slide-to="3"></li>
90
              </ol>
91
92
              <div class="carousel-inner">
93
                <div class="item active">
94
                  <img src="img/compiled-libraryinstallation.gif">
95
                  <div class="carousel-caption">
96
                    Easy installation</a>
97
                  </div>
98
                </div>
99
                <div class="item">
100
                  <img src="img/unittest.png">
101
                  <div class="carousel-caption">
102
                    Unit Test
103
                  </div>
104
                </div>
105
                <div class="item">
106
                  <img src="img/programcall.png">
107
                  <div class="carousel-caption">
108
                    Program Call
109
                  </div>
110
                </div>
111
                <div class="item">
112
                  <img src="img/output.gif" width="1600" height = "500">
113
                  <div class="carousel-caption">
114
                    Output
115
                  </div>
116
                </div>
117
              </div>
118
119
              <a class="left carousel-control" href="#tour" data-slide="prev">
120
                <span class="glyphicon glyphicon-chevron-left"></span>
121
              </a>
122
              <a class="right carousel-control" href="#tour" data-slide="next">
123
                <span class="glyphicon glyphicon-chevron-right"></span>
124
              </a>
125
            </div> <!-- #tour -->
126
          </div> <!-- /.col-md-12 -->
127
        </div> <!-- /.row -->
128
      </div> <!-- /.container -->
129
    </div> <!-- /.container-alternate -->
130
131
    
132
    <div class="container">
133
      <h3 id="faqs" class="subhead">Frequently Asked Questions</h3>
134
      <div class="row faqs">
135
        <p class="col-md-4 col-sm-6">
136
          <strong>Getting started</strong><br>
137
          All you need to do is to download & install the library and provide a<br> 
138
          reference of the CfUnit-library in your project. Now you are ready and<br>
139
          you can start to write your test code.
140
        </p>
141
        <p><ul class="col-md-4 col-sm-6">
142
          <strong>Follow these simple steps</strong>
143
            <ul>
144
              <li>Extend <code>CfUnit.FB_TestSuite</code>,</li>
145
              <li>Add the attribute-pragma <code>{attribute ‘call_after_init’}</code>,</li>
146
              <li>Define the inputs, define the expected outputs (result),</li>
147
              <li>Call the CfUnit-assert methods to compare the expected output to the actual output,</li>
148
              <li>Close the test with <code>TEST_FINISHED()</code> when finished.</li>
149
            </ul>
150
          </ul> 
151
        </p>
152
        <p><ul class="col-md-4 col-sm-6">
153
          <strong>Tuturials</strong>
154
            <ul>
155
              <li>Quick start <a href="https://forge.codesys.com/prj/cfunit/home/Home/">instructions</a>.</li>
156
              <li>Checking test <a href="https://forge.codesys.com/prj/cfunit/home/Home/">results</a>.</li>
157
              <li>Or follow <a href="https://forge.codesys.com/prj/cfunit/home/Home/">this introduction user guide</a>.<br></li>
158
              The end result of the tuturial (Simple Usage Example) can be downloaded <a href="#Download">here.</a>
159
            </ul>
160
          </ul> 
161
        </p>
162
        <p class="col-md-4 col-sm-6">
163
          <strong>API</strong><br>
164
          <a href="https://forge.codesys.com/prj/cfunit/home/CfUnit%20API%20Reference/">Online API reference can be found here</a>.
165
        </p>        
166
        <p class="col-md-4 col-sm-6">
167
          <strong>Report bugs</strong><br>
168
          Bugs can be reported by opening a <a href="https://forge.codesys.com/prj/cfunit/tickets/">ticket</a> here.
169
        </p>
170
        <p class="col-md-4 col-sm-6">
171
          <strong>Q&A </strong><br>
172
          If you have any questions, <a href="https://forge.codesys.com/prj/cfunit/questions/">you can drop them here</a>.<br>
173
          If you cannot find your anwser, you can always drop a question in the comment.<br>
174
          Posted questions will be modderated into the Q&A for future reference.
175
        </p>
176
      </div> <!-- /.faqs -->
177
    </div> <!-- /.container -->
178
    
179
    
180
    <div class="container">
181
      <h3 id="Download" class="subhead">Download</h3>
182
      <div class="row Download">
183
        <p class="col-md-4 col-sm-6">
184
        <strong>CfUnit.compiled-library</strong><br>
185
          v0.9.0.0 precompiled version.<br>
186
          <a href="https://forge.codesys.com/prj/cfunit/code/HEAD/tree/tags/v0.9.0.0/CfUnit.compiled-library?format=raw" class="btn btn-primary">Download</a>
187
        </p>
188
        <p class="col-md-4 col-sm-6">
189
        <strong>CfUnit.library</strong><br>
190
          v0.9.0.0, Compile and install it yourself<br>
191
          <a href="https://forge.codesys.com/prj/cfunit/code/HEAD/tree/tags/v0.9.0.0/CfUnit.library?format=raw" class="btn btn-primary">Download</a>
192
        </p>
193
        <p class="col-md-4 col-sm-6">
194
        <strong>CfUnitVerifier.project</strong><br>
195
          Verifies CfUnit and doubles<br>
196
          as a usage example<br>
197
          <a href="https://forge.codesys.com/prj/cfunit/code/HEAD/tree/tags/v0.9.0.0/CfUnitVerifier.project?format=raw" class="btn btn-primary">Download</a>
198
        </p>
199
        <p class="col-md-4 col-sm-6">
200
        <strong>CfUnitVerifier output.xml</strong><br>
201
          CfUnit library verifier output in XML<br>
202
          <a href="https://forge.codesys.com/prj/cfunit/code/HEAD/tree/tags/v0.9.0.0/CfUnitVerifier%20output.xml?format=raw" class="btn btn-primary">Download</a>
203
        </p>
204
        <p class="col-md-4 col-sm-6">
205
          <strong>SimpleCfUnitExampleProject.project</strong><br>
206
          Simple Usage Example<br>
207
          <a href="https://forge.codesys.com/prj/cfunit/code/HEAD/tree/tags/v0.9.0.0/SimpleCfUnitExampleProject.project?format=raw" class="btn btn-primary">Download</a>
208
        </p>
209
        <p class="col-md-4 col-sm-6">
210
          <strong>CfUnitTimedTestExample.project</strong><br>
211
          Timed Testing example<br>
212
          <a href="https://forge.codesys.com/prj/cfunit/code/HEAD/tree/tags/v0.9.0.0/CfUnitTimedTestExample.project?format=raw" class="btn btn-primary">Download</a>
213
        </p>
214
      </div> <!-- /.row Download -->
215
    </div> <!-- /.container -->
216
    
217
218
    <div class="container-alternate">
219
      <div class="container">
220
        <h3 id="about" class="subhead">About</h3>
221
        <div class="row about">
222
          <div class="col-md-10 col-md-offset-1 text-center">
223
            </p>  
224
              Kudos to Jakob Sagatowski for his kind permission to port his testing framework to CODESYS.
225
              Motivated by absence of 'good and free' IEC61131-3 automated unit testing frameworks/solutions. 
226
              Assistance provided by zer0g & Ingo was greatly appreciated.
227
              Without their assistance the porting alone would have taken me several months.
228
              Kudos for helping out with various tickets and providing valueable feedback!
229
            </p>
230
            <p>
231
              Port from TcUnit v0.9.0.0 originally written for TwinCAT3 by Jakob Sagatowski.
232
            <p>           
233
          </div> <!-- /.col-md-10 -->
234
        </div> <!-- /.row -->
235
      </div> <!-- /.container -->
236
    </div> <!-- /.container-alternate -->
237
    
238
    <footer>
239
      <div class="container clearfix">
240
        <p class="pull-left">
241
        </p>
242
        <p class="pull-right">
243
          template by <a href="http://coverstrap.com">Coverstrap</a>
244
        </p>
245
      </div> <!-- /.container -->
246
    </footer>
247
248
    <script src="js/jquery.js"></script>
249
    <script src="js/bootstrap.min.js"></script>
250
    <script>
251
      $(".nav-link").click(function(e) {
252
        e.preventDefault();
253
        var link = $(this);
254
        var href = link.attr("href");
255
        $("html,body").animate({scrollTop: $(href).offset().top - 80}, 500);
256
        link.closest(".navbar").find(".navbar-toggle:not(.collapsed)").click();
257
      });
258
    </script>
259
  </body>
260
</html>