Diff of /landingpage/index.html [r247] .. [r248]  Maximize  Restore

Switch to unified view

a/landingpage/index.html b/landingpage/index.html
...
...
27
          </a>
27
          </a>
28
        </div> <!-- /.navbar-header -->
28
        </div> <!-- /.navbar-header -->
29
29
30
        <div class="collapse navbar-collapse navbar-ex1-collapse">
30
        <div class="collapse navbar-collapse navbar-ex1-collapse">
31
          <ul class="nav navbar-nav navbar-right">
31
          <ul class="nav navbar-nav navbar-right">
32
            <li><a href="#features" class="nav-link">Features</a></li>
32
            <li><a href="#jumbotron" class="nav-link">About</a></li>
33
            <li><a href="#tour-head" class="nav-link">Tour</a></li>
33
            <li><a href="#features" class="nav-link">Features</a></li>
34
            <li><a href="#Download">Download</a></li>
34
            <li><a href="#tour-head" class="nav-link">Tour</a></li>
35
            <li><a href="#start" class="nav-link">Getting started</a></li>
35
            <li><a href="#Download">Download</a></li>
36
            <li><a href="#tuturial" class="nav-link">Tutorial</a></li>
36
            <li><a href="#start" class="nav-link">Getting started</a></li>
37
            <li><a href="#about" class="nav-link">About</a></li>
37
            <li><a href="#Resources" class="nav-link">Resources</a></li>
38
          </ul>
38
          </ul>
39
        </div> <!-- /.navbar-collapse -->
39
        </div> <!-- /.navbar-collapse -->
40
      </div> <!-- /.container -->
40
      </div> <!-- /.container -->
41
    </nav> <!-- /.navbar -->
41
    </nav> <!-- /.navbar -->
42
42
43
43
44
    <div id="top" class="jumbotron">
44
    <div id="top" class="jumbotron">
45
      <div class="container">
45
      <div class="container">
46
        <h1>CfUnit &mdash; CODESYS Forge Unit Testing framework</h1>
46
        <h1>
47
        <h2>'CfUnit' is motivated by absence of 'good and free' open source IEC61131-3 automated unit-testing solutions. Developed in ST for CODESYS based PLC systems. MIT-Licensed</h2>
47
          CfUnit &mdash; CODESYS Forge Unit Testing framework
48
        <p><a class="btn btn-primary btn-lg" href="#Download">Download <span class="glyphicon glyphicon-circle-arrow-right"></span></a></p>
48
        </h1>
49
      </div> <!-- /.container -->
49
        <h2>
50
    </div> <!-- /.jumbotron -->
50
          'CfUnit' is motivated by absence of 'good and free' open source IEC61131-3 automated unit-testing solutions.
51
51
          Written in Structured-Text for CODESYS based PLC systems. MIT-licensed.
52
52
        </h2>
53
    <div class="container">
53
        <p><a class="btn btn-primary btn-lg" href="#Download">Download <span class="glyphicon glyphicon-circle-arrow-right"></span></a></p>
54
      <h3 id="features" class="subhead">Features</h3>
54
        <br>
55
      <div class="row benefits">
55
        <h4>
56
        <div class="col-md-4 col-sm-6 benefit">
56
          Forked from <a href="https://www.tcunit.org">TcUnit</a> by Jakob Sagatowski for TwinCAT3. Assistance provided 
57
          <div class="benefit-ball">
57
          by zer0g & Ingo was greatly appreciated. Without their assistance, porting alone would have taken me several 
58
            <span class="glyphicon glyphicon-star"></span>
58
          months. Kudos for helping me out with various tickets and providing invalueable feedback!
59
          </div>
59
        <h4>
60
          <h3>Easy</h3>
60
      </div> <!-- /.container -->   
61
          Download,<br>Install,<br>Reference,<br>Ready!
61
    </div> <!-- /.jumbotron -->
62
        </div> <!-- /.benefit -->
62
63
        <div class="col-md-4 col-sm-6 benefit">
63
64
          <div class="benefit-ball">
64
    <div class="container">
65
            <span class="glyphicon glyphicon-ok"></span>
65
      <h3 id="features" class="subhead">Features</h3>
66
          </div>
66
      <div class="row benefits">
67
          <h3>Powerful</h3>
67
        <div class="col-md-4 col-sm-6 benefit">
68
          Higher productivity,<br>Fewer bugs,<br>Cleaner code,<br>CI/CD integration*<br>*under development</p>
68
          <div class="benefit-ball">
69
        </div> <!-- /.benefit -->
69
            <span class="glyphicon glyphicon-star"></span>
70
        <div class="col-md-4 col-sm-6 benefit">
70
          </div>
71
          <div class="benefit-ball">
71
          <h3>Easy</h3>
72
            <span class="glyphicon glyphicon-heart"></span>
72
          Download,<br>Install,<br>Reference,<br>Ready!
73
          </div>
73
        </div> <!-- /.benefit -->
74
          <h3>Free</h3>
74
        <div class="col-md-4 col-sm-6 benefit">
75
          <p>MIT-Licensed</p>
75
          <div class="benefit-ball">
76
        </div> <!-- /.benefit -->
76
            <span class="glyphicon glyphicon-ok"></span>
77
      </div> <!-- /.row -->
77
          </div>
78
    </div> <!-- /.container -->
78
          <h3>Powerful</h3>
79
    
79
          Higher productivity,<br>Fewer bugs,<br>Cleaner code,<br>CI/CD integration*<br>*under development</p>
80
    
80
        </div> <!-- /.benefit -->
81
    <div class="container-alternate">
81
        <div class="col-md-4 col-sm-6 benefit">
82
      <div class="container">
82
          <div class="benefit-ball">
83
        <h3 id="tour-head" class="subhead">Tour</h3>
83
            <span class="glyphicon glyphicon-heart"></span>
84
        <div class="row">
84
          </div>
85
          <div class="col-md-12">
85
          <h3>Free</h3>
86
            <div id="tour" class="carousel slide">
86
          <p>MIT-Licensed</p>
87
              <ol class="carousel-indicators">
87
        </div> <!-- /.benefit -->
88
                <li data-target="#tour" data-slide-to="0" class="active"></li>
88
      </div> <!-- /.row -->
89
                <li data-target="#tour" data-slide-to="1"></li>
89
    </div> <!-- /.container -->
90
                <li data-target="#tour" data-slide-to="2"></li>
90
    
91
                <li data-target="#tour" data-slide-to="3"></li>
91
    
92
                <li data-target="#tour" data-slide-to="4"></li>
92
    <div class="container-alternate">
93
              </ol>
93
      <div class="container">
94
              <div class="carousel-inner">
94
        <h3 id="tour-head" class="subhead">Tour</h3>
95
                <div class="item active">
95
        <div class="row">
96
                  <img src="img/installpackage.gif">
96
          <div class="col-md-12">
97
                  <div class="carousel-caption d-md-block">
97
            <div id="tour" class="carousel slide">
98
                    Step 1: Installation
98
              <ol class="carousel-indicators">
99
                  </div>
99
                <li data-target="#tour" data-slide-to="0" class="active"></li>
100
                </div>
100
                <li data-target="#tour" data-slide-to="1"></li>
101
                <div class="item">
101
                <li data-target="#tour" data-slide-to="2"></li>
102
                  <img src="img/TestSuite.png">
102
                <li data-target="#tour" data-slide-to="3"></li>
103
                  <div class="carousel-caption d-md-block">
103
                <li data-target="#tour" data-slide-to="4"></li>
104
                    Step 2: Define a Test Suite
104
              </ol>
105
                  </div>
105
              <div class="carousel-inner">
106
                </div>
106
                <div class="item active">
107
                <div class="item">
107
                  <img src="img/installpackage.gif">
108
                  <img src="img/TestMethod.png">
108
                  <div class="carousel-caption d-md-block">
109
                  <div class="carousel-caption d-md-block">
109
                    Step 1: Installation
110
                    Step 3: Define Test Method
110
                  </div>
111
                  </div>
111
                </div>
112
                </div>
112
                <div class="item">
113
                <div class="item">
113
                  <img src="img/TestSuite.png">
114
                  <img src="img/programcall.png">
114
                  <div class="carousel-caption d-md-block">
115
                  <div class="carousel-caption d-md-block">
115
                    Step 2: Define Test Suite(s)
116
                    Step 4: Define Program and call TestSuite
116
                  </div>
117
                  </div>
117
                </div>
118
                </div>
118
                <div class="item">
119
                <div class="item">
119
                  <img src="img/TestMethod.png">
120
                  <img src="img/SimpleCfUnitExample.gif">
120
                  <div class="carousel-caption d-md-block">
121
                  <div class="carousel-caption d-md-block">
121
                    Step 3: Define Test Method(s)
122
                    Step 5: Run Program and check TestLog
122
                  </div>
123
                  </div>
123
                </div>
124
                </div>
124
                <div class="item">
125
              </div>
125
                  <img src="img/programcall.png">
126
              <a class="left carousel-control" href="#tour" data-slide="prev">
126
                  <div class="carousel-caption d-md-block">
127
                <span class="glyphicon glyphicon-chevron-left"></span>
127
                    Step 4: Define TestProgram, call Test Suite
128
              </a>
128
                  </div>
129
              <a class="right carousel-control" href="#tour" data-slide="next">
129
                </div>
130
                <span class="glyphicon glyphicon-chevron-right"></span>
130
                <div class="item">
131
              </a>
131
                  <img src="img/SimpleCfUnitExample.gif">
132
            </div> <!-- #tour -->
132
                  <div class="carousel-caption d-md-block">
133
          </div> <!-- /.col-md-12 -->
133
                    Step 5: Run TestProgram and check TestLog
134
        </div> <!-- /.row -->
134
                  </div>
135
      </div> <!-- /.container -->
135
                </div>
136
    </div> <!-- /.container-alternate -->
136
              </div>
137
    
137
              <a class="left carousel-control" href="#tour" data-slide="prev">
138
    
138
                <span class="glyphicon glyphicon-chevron-left"></span>
139
    <div class="container">
139
              </a>
140
      <h3 id="Download" class="subhead">Download</h3>
140
              <a class="right carousel-control" href="#tour" data-slide="next">
141
      <div class="row download">
141
                <span class="glyphicon glyphicon-chevron-right"></span>
142
      <p class="col-md-4 col-sm-6">
142
              </a>
143
143
            </div> <!-- #tour -->
144
      </p>    
144
          </div> <!-- /.col-md-12 -->
145
      <p>
145
        </div> <!-- /.row -->
146
        <ul class="col-md-4 col-sm-6">
146
      </div> <!-- /.container -->
147
        <strong>Contains all you need:</strong>
147
    </div> <!-- /.container-alternate -->
148
          <ul>
148
149
            <li>CfUnit v1.0.0.0 Library</li>
149
150
            <li>Verifier Project</li>
150
    <div class="container">
151
            <li>Simple Example Project</li>
151
      <h3 id="Download" class="subhead">Download</h3>
152
          </ul><br>
152
      <div class="row download" >
153
          <center>
153
        <p>
154
            <a href="https://forge.codesys.com/prj/cfunit/code/HEAD/tree/tags/v1.0.0.0/CfUnit.package?format=raw" class="btn btn-primary">Download Package</a>
154
          <ul class="col-md-4 col-sm-6 text-center">
155
          </center>
155
          <p>
156
      </p>
156
            <a href="https://forge.codesys.com/prj/cfunit/code/HEAD/tree/tags/v1.0.0.0/CfUnit.package?format=raw" class="btn btn-primary">CfUnit v1.0.0.0 Package</a>
157
      </div> <!-- /.row Download -->
157
          </p>
158
    </div> <!-- /.container -->
158
          <strong>Contains</strong>
159
159
          <br>CfUnit Library
160
    
160
          <br>Verifier Project
161
    <div class="container">
161
          <br>Simple Example Project          
162
      <h3 id="start" class="subhead">Getting started</h3>
162
        </p>
163
      <div class="row start" align="center">
163
      </div> <!-- /.row Download -->
164
        <div class="col-md-10 col-md-offset-1">
164
165
          <ul>
165
166
            <li>Extend your test with <code>CfUnit.FB_TestSuite</code>,</li>
166
    </div> <!-- /.container -->
167
            <li>Add the attribute-pragma <code>{attribute ‘call_after_init’}</code>,</li>
167
        <div class="container">
168
            <li>Define the inputs and define the expected output (result),</li>
168
      <h3 id="start" class="subhead">Getting started</h3>
169
            <li>Call the CfUnit-assert methods to compare the expected output to the actual output,</li>
169
      <div class="row start" >
170
            <li>Close the test with <code>TEST_FINISHED()</code> when finished.</li>
170
        <p>
171
            <li>Call the test method from the main FB Body</li>
171
          <ul class="col-md-4 col-sm-6 text-center">
172
          </ul>
172
          <strong>A detailed step by step tutorial for the Simple CfUnit example project can be found <a href="https://forge.codesys.com/prj/cfunit/home/Home/">here</a>.</strong>
173
        </div> 
173
          <br>Extend your test with <code>CfUnit.FB_TestSuite</code>,
174
      </div> <!-- /.start -->
174
          <br>Add the attribute-pragma <code>{attribute ‘call_after_init’}</code>,
175
    </div> <!-- /.container -->
175
            <br>Define the inputs and define the expected output (result),
176
    
176
            <br>Call the CfUnit-assert methods to compare the expected output to the actual output,i>
177
    <div class="container">
177
            <br>Close the test with <code>TEST_FINISHED()</code> when finished.
178
        <h3 id="tuturial" class="subhead">Tutorial</h3>
178
            <br>Call the test method from the main FB Body
179
        <div class="row tutorial">
179
        </p>
180
          <div class="col-md-10 col-md-offset-1 text-center">
180
       </div> 
181
            </p>  
181
      </div> <!-- /.start -->
182
              A step by step tutorial for the Simple CfUnit example project can be <a href="https://forge.codesys.com/prj/cfunit/home/Home/">found here.</a>
182
    </div> <!-- /.container -->
183
            </p>
183
184
            <p class="col-md-4 col-sm-6">
184
185
              <strong>API</strong><br>
185
    <div class="container">
186
              Online API reference can be <a href="https://forge.codesys.com/prj/cfunit/home/CfUnit%20API%20Reference/"> found here</a>.
186
        <h3 id="Resources" class="subhead">Resources</h3>
187
            </p>
187
        <div class="row Resources">
188
            <p class="col-md-4 col-sm-6">
188
          <div class="col-md-10 col-md-offset-1 text-center">
189
              <strong>Q&A</strong><br>
189
            <p class="col-md-4 col-sm-6">
190
              If you have any questions, you can drop <a href="https://forge.codesys.com/prj/cfunit/questions/">them here</a>.<br>
190
              <strong>API</strong><br>
191
              If you cannot find your anwser, you can always drop a question in the comment.<br>
191
              Online API reference can be found <a href="https://forge.codesys.com/prj/cfunit/home/CfUnit%20API%20Reference/">here</a>.
192
              Posted questions will be modderated into the Q&A for future reference.
192
            </p>
193
            </p>        
193
            <p class="col-md-4 col-sm-6">
194
            <p class="col-md-4 col-sm-6">
194
              <strong>Q&A</strong><br>
195
              <strong>Bugs</strong><br>
195
              If you have any questions, you can drop them <a href="https://forge.codesys.com/prj/cfunit/questions/">here</a>.<br>
196
              Bugs can be reported by opening a <a href="https://forge.codesys.com/prj/cfunit/tickets/">ticket here</a>.
196
              If you cannot find your anwser, you can always drop a question in the comment.<br>
197
            </p>
197
              Posted questions will be modderated into the Q&A for future reference.
198
          </div> <!-- /.col-md-10 -->
198
            </p>        
199
        </div> <!-- /.row -->
199
            <p class="col-md-4 col-sm-6">
200
      </div> <!-- /.tutorial -->
200
              <strong>Bugs</strong><br>
201
    </div> <!-- /.container -->
201
              Bugs can be reported by opening a ticket <a href="https://forge.codesys.com/prj/cfunit/tickets/">here</a>.
202
    
202
            </p>
203
    
203
          </div> <!-- /.col-md-10 -->
204
    <div class="container-alternate">
204
        </div> <!-- /.row -->
205
      <div class="container">
205
      </div> <!-- /.Resources -->
206
        <h3 id="about" class="subhead">About</h3>
206
    </div> <!-- /.container -->
207
        <div class="row about">
207
    
208
          <div class="col-md-10 col-md-offset-1 text-center">
208
    <br>
209
            </p>  
209
    <footer>
210
              Kudos to Jakob Sagatowski for his kind permission to port his testing framework to CODESYS.
210
      <div class="container clearfix">
211
              Assistance provided by zer0g & Ingo was greatly appreciated. Without their assistance the porting alone would have taken me several months.
211
        <p class="pull-left">   
212
              Kudos for helping out with various tickets and providing valueable feedback!
212
        </p>
213
            </p>
213
        <p class="pull-right">
214
            <p>
214
          <a href="https://forge.codesys.com/u/aliazzz/profile/"><img src="img/aliazzz.png" alt="Brains ... & Anything IEC61131-3"></a>Brains ... & Anything IEC61131-3<br>Aliazzz
215
              Forked and ported from <a href="https://www.tcunit.org">TcUnit</a>, originally written for TwinCAT3 by Jakob Sagatowski.
215
        </p>
216
            <p>           
216
      </div> <!-- /.container -->
217
          </div> <!-- /.col-md-10 -->
217
    </footer>
218
        </div> <!-- /.row -->
218
219
      </div> <!-- /.container -->
219
220
    </div> <!-- /.container-alternate -->
220
    <script src="js/jquery.js"></script>
221
    
221
    <script src="js/bootstrap.min.js"></script>
222
222
    <script>
223
    <footer>
223
      $(".nav-link").click(function(e) {
224
      <div class="container clearfix">
224
        e.preventDefault();
225
        <p class="pull-left">   
225
        var link = $(this);
226
        </p>
226
        var href = link.attr("href");
227
        <p class="pull-right">
227
        $("html,body").animate({scrollTop: $(href).offset().top - 80}, 500);
228
          <a href="https://forge.codesys.com/u/aliazzz/profile/"><img src="img/aliazzz.png" alt="Brains ... & Anything IEC61131-3"></a>Brains ... & Anything IEC61131-3<br>Aliazzz
228
        link.closest(".navbar").find(".navbar-toggle:not(.collapsed)").click();
229
        </p>
229
      });
230
      </div> <!-- /.container -->
230
    </script>
231
    </footer>
232
233
234
    <script src="js/jquery.js"></script>
235
    <script src="js/bootstrap.min.js"></script>
236
    <script>
237
      $(".nav-link").click(function(e) {
238
        e.preventDefault();
239
        var link = $(this);
240
        var href = link.attr("href");
241
        $("html,body").animate({scrollTop: $(href).offset().top - 80}, 500);
242
        link.closest(".navbar").find(".navbar-toggle:not(.collapsed)").click();
243
      });
244
    </script>
245
    
246
  </body>
231
  </body>
247
</html>
232
</html>