@aj-shadow/actorjs-documentation-text 0.0.0-aj-beta.221
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitattributes +26 -0
- package/Documentation/Document-global-Be-100-more-efficient.txt +31 -0
- package/Documentation/Document-global-actorjs-trigger-mock-and-intercept-anything.txt +21 -0
- package/Documentation/Document-global-advanced-visualization.txt +28 -0
- package/Documentation/Document-global-debugging.txt +4 -0
- package/Documentation/Document-global-divide-and-reuse.txt +37 -0
- package/Documentation/Document-global-general-separation.txt +2 -0
- package/Documentation/Document-global-markup-anchor.txt +6 -0
- package/Documentation/Document-global-markup-api-status.txt +39 -0
- package/Documentation/Document-global-markup-chart-line.txt +18 -0
- package/Documentation/Document-global-markup-documentation-status.txt +39 -0
- package/Documentation/Document-global-markup-documentation.txt +72 -0
- package/Documentation/Document-global-markup-embed.txt +6 -0
- package/Documentation/Document-global-markup-flowchart.txt +88 -0
- package/Documentation/Document-global-markup-html.txt +122 -0
- package/Documentation/Document-global-markup-ie.txt +18 -0
- package/Documentation/Document-global-markup-image.txt +55 -0
- package/Documentation/Document-global-markup-lab.txt +63 -0
- package/Documentation/Document-global-markup-markup.txt +21 -0
- package/Documentation/Document-global-markup-navigation.txt +25 -0
- package/Documentation/Document-global-markup-node-diagram.txt +163 -0
- package/Documentation/Document-global-markup-note.txt +6 -0
- package/Documentation/Document-global-markup-ref.txt +6 -0
- package/Documentation/Document-global-markup-sequence-diagram.txt +215 -0
- package/Documentation/Document-global-markup-state-machine.txt +121 -0
- package/Documentation/Document-global-markup-table.txt +34 -0
- package/Documentation/Document-global-navigation-pane.txt +3 -0
- package/Documentation/Document-global-navigation.txt +2 -0
- package/Documentation/Document-global-specialized-javascript-editors.txt +2 -0
- package/Documentation/Document-global-stacks-connection.txt +2 -0
- package/Documentation/Document-global-stacks-server.txt +2 -0
- package/Documentation/Document-global-test-environment-overview.txt +15 -0
- package/Documentation/Document-global-the-architecture.txt +51 -0
- package/Documentation/Document-global-the-development-environment.txt +5 -0
- package/Documentation/Document-global-the-test-environment.txt +15 -0
- package/Documentation/Document-global-think-ahead.txt +35 -0
- package/Documentation/Document-global-thinking-in-actors-unlimited.txt +1 -0
- package/Documentation/Document-global-what-is-a-stack.txt +2 -0
- package/Documentation/Document-global-why-actorjs.txt +52 -0
- package/Documentation/Document-global-why-actors-unlimited.txt +182 -0
- package/Documentation/Document-global-x-test-case-tool.txt +2 -0
- package/Documentation/Navigation-Documentation-actorjs-global.txt +372 -0
- package/Documentation/Navigation-Documentation-actorsite-global.txt +363 -0
- package/Documentation/abstractions/Document-global-addressing.txt +81 -0
- package/Documentation/abstractions/Document-global-configuration-floor.txt +2 -0
- package/Documentation/abstractions/Document-global-content.txt +3 -0
- package/Documentation/abstractions/Document-global-functions-test.txt +4 -0
- package/Documentation/abstractions/Document-global-functions-unde-test.txt +2 -0
- package/Documentation/abstractions/Document-global-load-test.txt +3 -0
- package/Documentation/abstractions/Document-global-repo.txt +79 -0
- package/Documentation/abstractions/Document-global-shared-data.txt +5 -0
- package/Documentation/abstractions/Document-global-system-to-test.txt +2 -0
- package/Documentation/abstractions/Document-global-system-under-test.txt +3 -0
- package/Documentation/abstractions/Document-global-test-data.txt +251 -0
- package/Documentation/abstractions/Document-global-test-suite.txt +37 -0
- package/Documentation/abstractions/Document-global-verification-data.txt +103 -0
- package/Documentation/abstractions/actor/Document-global-actor-condition.txt +74 -0
- package/Documentation/abstractions/actor/Document-global-actor-local.txt +44 -0
- package/Documentation/abstractions/actor/Document-global-actor-originating.txt +100 -0
- package/Documentation/abstractions/actor/Document-global-actor-proxy.txt +119 -0
- package/Documentation/abstractions/actor/Document-global-actor-terminating.txt +101 -0
- package/Documentation/abstractions/actor/Document-global-actor.txt +90 -0
- package/Documentation/abstractions/actor/Document-global-execution-states.txt +21 -0
- package/Documentation/abstractions/actorpart/Document-global-actorpart.txt +2 -0
- package/Documentation/abstractions/stack/Document-global-client-connection.txt +3 -0
- package/Documentation/abstractions/stack/Document-global-connection.txt +3 -0
- package/Documentation/abstractions/stack/Document-global-decoder.txt +3 -0
- package/Documentation/abstractions/stack/Document-global-encoder.txt +3 -0
- package/Documentation/abstractions/stack/Document-global-message.txt +4 -0
- package/Documentation/abstractions/stack/Document-global-server-connection.txt +3 -0
- package/Documentation/abstractions/stack/Document-global-stack.txt +12 -0
- package/Documentation/abstractions/stack/Document-global-worker.txt +3 -0
- package/Documentation/abstractions/test-case/Document-global-phases.txt +30 -0
- package/Documentation/abstractions/test-case/Document-global-test-case-result.txt +23 -0
- package/Documentation/abstractions/test-case/Document-global-test-case.txt +199 -0
- package/Documentation/actor-api/Document-global-actor-part.txt +7 -0
- package/Documentation/actor-api/Document-global-actor.txt +375 -0
- package/Documentation/actor-api/Document-global-async.txt +176 -0
- package/Documentation/actor-api/Document-global-client-stack.txt +215 -0
- package/Documentation/actor-api/Document-global-content.txt +106 -0
- package/Documentation/actor-api/Document-global-logger.txt +426 -0
- package/Documentation/actor-api/Document-global-process.txt +7 -0
- package/Documentation/actor-api/Document-global-server-stack.txt +213 -0
- package/Documentation/actor-api/Document-global-shared-data.txt +259 -0
- package/Documentation/actor-api/Document-global-test-data.txt +816 -0
- package/Documentation/actor-api/Document-global-timer.txt +70 -0
- package/Documentation/actor-api/Document-global-verification-data.txt +624 -0
- package/Documentation/connection-worker-api/Document-global-logger.txt +3 -0
- package/Documentation/documentation-references.json +199 -0
- package/Documentation/embedded/Document-global-test-case-result.txt +10 -0
- package/Documentation/howto/Document-global-create-actor.txt +1 -0
- package/Documentation/howto/Document-global-create-stack.txt +1 -0
- package/Documentation/howto/Document-global-create-test-case.txt +1 -0
- package/Documentation/howto/Document-global-create-test-suite.txt +1 -0
- package/Documentation/howto/Document-global-define-addresses.txt +1 -0
- package/Documentation/howto/Document-global-define-fut.txt +1 -0
- package/Documentation/howto/Document-global-define-sut.txt +16 -0
- package/Documentation/howto/Document-global-full-workflow.txt +143 -0
- package/Documentation/howto/Document-global-normal-workflow.txt +58 -0
- package/Documentation/howto/Document-global-prerequisites.txt +8 -0
- package/Documentation/howto/prerequisites/Document-global-install-actorjs.txt +64 -0
- package/Documentation/howto/prerequisites/Document-global-install-git.txt +26 -0
- package/Documentation/howto/prerequisites/Document-global-install-nodejs.txt +19 -0
- package/Documentation/markup/Document-global-markup-test-case.txt +6 -0
- package/Documentation/markup/Document-global-markup-test-suite.txt +13 -0
- package/Documentation/markup/embed/Document-global-inner_markup_tc.txt +164 -0
- package/Documentation/nodejs-api/Document-global-fs.txt +7 -0
- package/Documentation/stack-api/Document-global-ascii-dictionary.txt +108 -0
- package/Documentation/stack-api/Document-global-binary-log.txt +91 -0
- package/Documentation/stack-api/Document-global-bit-byte.txt +80 -0
- package/Documentation/stack-api/Document-global-content-base.txt +169 -0
- package/Documentation/stack-api/Document-global-ip-log.txt +101 -0
- package/Documentation/stack-api/Document-global-log-inner.txt +152 -0
- package/Documentation/stack-api/Document-global-log-part-error.txt +12 -0
- package/Documentation/stack-api/Document-global-log-part-ref.txt +80 -0
- package/Documentation/stack-api/Document-global-log-part-text.txt +81 -0
- package/Documentation/tools/Document-global-actors.txt +196 -0
- package/Documentation/tools/Document-global-addressing.txt +38 -0
- package/Documentation/tools/Document-global-content.txt +1 -0
- package/Documentation/tools/Document-global-global-test-data.txt +197 -0
- package/Documentation/tools/Document-global-stacks.txt +1 -0
- package/Documentation/tools/Document-global-test-case-analyze.txt +3 -0
- package/Documentation/tools/Document-global-test-case-debug.txt +16 -0
- package/Documentation/tools/Document-global-test-case-definition.txt +37 -0
- package/Documentation/tools/Document-global-test-case-execution.txt +28 -0
- package/Documentation/tools/Document-global-test-case-log.txt +95 -0
- package/Documentation/tools/Document-global-test-case-sequence-diagram.txt +17 -0
- package/Documentation/tools/Document-global-test-case-specification.txt +3 -0
- package/Documentation/tools/Document-global-test-cases.txt +11 -0
- package/Documentation/tools/Document-global-tool-test-suite.txt +202 -0
- package/Education/Document-global-add-your-first-addresses.txt +75 -0
- package/Education/Document-global-define-your-first-sut.txt +18 -0
- package/Education/Document-global-make-your-first-actors.txt +35 -0
- package/Education/Document-global-make-your-first-test-case.txt +43 -0
- package/Education/Document-global-make-your-first-test-suite.txt +29 -0
- package/Education/Document-global-share-your-work.txt +35 -0
- package/Education/Navigation-Education-actorjs-global.txt +31 -0
- package/LICENSE.txt +96 -0
- package/README.md +5 -0
- package/Workshop/Document-global-actordemo-image-ai.txt +5 -0
- package/Workshop/Document-global-actordemo-login.txt +10 -0
- package/Workshop/Document-global-actordemo-site.txt +3 -0
- package/Workshop/Document-global-actordemo-start.txt +5 -0
- package/Workshop/Document-global-actordemo-the-architecture.txt +27 -0
- package/Workshop/Document-global-introduction-actor.txt +84 -0
- package/Workshop/Document-global-introduction-actorjs.txt +42 -0
- package/Workshop/Document-global-introduction-stack.txt +25 -0
- package/Workshop/Document-global-introduction-system-under-test.txt +102 -0
- package/Workshop/Document-global-introduction-test-case.txt +50 -0
- package/Workshop/Document-global-introduction-test-suite.txt +31 -0
- package/Workshop/Document-global-login-with-puppeter.txt +45 -0
- package/Workshop/Document-global-mock-with-http.txt +83 -0
- package/Workshop/Document-global-mock-with-icap.txt +94 -0
- package/Workshop/Document-global-prerequisites-actorJs.txt +18 -0
- package/Workshop/Document-global-prerequisites-actordemo.txt +15 -0
- package/Workshop/Document-global-trigger-with-http.txt +93 -0
- package/Workshop/Document-global-trigger-with-puppeter.txt +49 -0
- package/Workshop/Navigation-Workshop-actorjs-global.txt +86 -0
- package/npm-shrinkwrap.json +13 -0
- package/package.json +10 -0
package/.gitattributes
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
|
|
2
|
+
# Set the default behavior, in case people don't have core.autocrlf set.
|
|
3
|
+
* text=auto
|
|
4
|
+
|
|
5
|
+
# Explicitly declare text files you want to always be normalized and converted
|
|
6
|
+
# to native line endings on checkout.
|
|
7
|
+
*.json text
|
|
8
|
+
*.js text
|
|
9
|
+
*.jsx text
|
|
10
|
+
*.txt text
|
|
11
|
+
*.md text
|
|
12
|
+
*.bld text
|
|
13
|
+
*.tsk text
|
|
14
|
+
*.css text
|
|
15
|
+
*.html text
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# Declare files that will always have CRLF line endings on checkout.
|
|
19
|
+
#*.sln text eol=crlf
|
|
20
|
+
|
|
21
|
+
# Declare files that will always have LF line endings on checkout.
|
|
22
|
+
#*.txt text eol=lf
|
|
23
|
+
|
|
24
|
+
# Denote all files that are truly binary and should not be modified.
|
|
25
|
+
*.png binary
|
|
26
|
+
*.jpg binary
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# **Be 100% more efficient and reduce maintenance by 50%**
|
|
2
|
+
Focus on Integration tests to increase development speed and decrease maintenance throughout your system development lifecycle.
|
|
3
|
+
## **The Test Diamond**
|
|
4
|
+
|
|
5
|
+
```raw
|
|
6
|
+
<svg width="500" height="350">
|
|
7
|
+
<defs>
|
|
8
|
+
<linearGradient id="Gradient" gradientTransform="translate(0.3, 0) rotate(45)">>
|
|
9
|
+
<stop offset="0%" stop-color="aliceblue"/>
|
|
10
|
+
<stop offset="100%" stop-color="DodgerBlue"/>
|
|
11
|
+
</linearGradient >
|
|
12
|
+
</defs>
|
|
13
|
+
<g transform="translate(200 0) rotate(45 0 0)">
|
|
14
|
+
<rect x="0" y="0" width="240" height="240" fill="url(#Gradient)" style="stroke-width:2;stroke:black;" ></rect>
|
|
15
|
+
<line x1="0" x2="160" y1="160" y2="0" style="stroke:Black;stroke-width:2"></line>
|
|
16
|
+
<line x1="80" x2="240" y1="240" y2="80" style="stroke:Black;stroke-width:2"></line>
|
|
17
|
+
</g>
|
|
18
|
+
<text x="143" y="85" style="stroke:Black;font-size:22px;font-family:'Helvetica Neue'">End to End</text>
|
|
19
|
+
<text x="148" y="175" style="stroke:Black;font-size:24px;font-family:'Helvetica Neue'">Integration</text>
|
|
20
|
+
<text x="178" y="270" style="stroke:Black;font-size:22px;font-family:'Helvetica Neue'">Unit</text>
|
|
21
|
+
</svg>
|
|
22
|
+
```
|
|
23
|
+
* **End to End**: Testing a whole system without **mocking** and **intercepting**. There are a lot of scenarios that cannot be handled. It is very hard to generate **negative** tests for a real system. Use **End to End** testing as sanity tests.
|
|
24
|
+
* **Integration**: Testing your system's communication. The basis for communication, the protocols, are fairly static. You can update a lot of your code without changing the stacks, implementing the protocols. This will increase development speed and reduce maintenance of test cases. **GUI** tests are a little bit more tricky, but with a good strategy you can update them without having to change too many test cases. **ActorJs** is focusing on reusing test components and usually you have only to update one test component, used in a lot of test cases, when changing your **GUI**.
|
|
25
|
+
* **Unit**: Testing components without external dependencies. `warning`: Building too many and **Unit** tests, grasping over too much functionality, will give you big problems. This will force you refactor or remove [[REF=, ABS_Test_Cases]] whenever you change your code, which will cost you considerable time.
|
|
26
|
+
|
|
27
|
+
### **GUI tests**
|
|
28
|
+
A great misunderstanding is that **GUI** tests are **End to End** tests. **GUI** tests are there to test the **GUI**, not the system! Use both **End to End** and **Integration** but focus on **Integration** where you can **mock** and **intercept** to handle all negative tests.
|
|
29
|
+
|
|
30
|
+
If your **GUI** is **html**, use the **GUI** tests to test the **GUI**, use **http** and **websockets** to test the backend! **Http** and **websocket** tests can be up to 100 times faster than **GUI** tests.
|
|
31
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# **Trigger, Mock, and Intercept anything**
|
|
2
|
+
|
|
3
|
+
With ActorJs you can simulate any environment. You can **trigger**, **mock**, and **intercept anything**. You can develop and test without using any external dependencies. That is **freedom** and it will increase your development speed.
|
|
4
|
+
|
|
5
|
+
[[ANCHOR={"id":"f549215f-aa53-4ad9-872c-55ba070208a2","visible":true}]]
|
|
6
|
+
[[NOTE={"guid":"58327f38-8f06-428a-9f41-1dbb6a331913"}]]
|
|
7
|
+
|
|
8
|
+
### **Simulate processes**
|
|
9
|
+
ActorJs simulates all processes and services surrounding a [[REF=, ABS_System_Under_Test]]. It allows you to isolate a [[REF=, ABS_System_Under_Test]] in a very efficient way, regardless of how many surrounding systems or protocols the [[REF=, ABS_System_Under_Test]] needs to function.
|
|
10
|
+
|
|
11
|
+
[[REF=, ABS_Actor]]s are small pieces of code that are executed in parallel or serially with other [[REF=, ABS_Actor]]s in a [[REF=, ABS_Test_Case]]. They take the place of simulators, mocked processes, or real systems, and can be seen as small pieces of a simulator. The [[REF=, ABS_Actor]]s will be reused in a lot of [[REF=, ABS_Test_Case]]s.
|
|
12
|
+
|
|
13
|
+
ActorJs is designed primarily for developers who want to increase the pace of development, but it also works well for testers and anyone else who wants to execute test cases. The focus here is not on what is already in place, but on how to build what's needed as quickly as possible. When working with cutting-edge development, for example, it is essential to support new protocols as quickly as possible. There is no time to wait for simulators to be created or updated.
|
|
14
|
+
|
|
15
|
+
[[ANCHOR={"id":"15d32daf-71f2-4378-a456-8fc864e4a915","visible":true}]]
|
|
16
|
+
[[NOTE={"guid":"81489de0-d645-46d1-85d9-28bc1a2e9144"}]]
|
|
17
|
+
### **ActorJs automates the test scene to its maximum level -- up to 100 %**
|
|
18
|
+
1) Build and run a [[REF=, ABS_Test_Case]].
|
|
19
|
+
2) Push it to the [[REF=, ABS_Repo]].
|
|
20
|
+
|
|
21
|
+
Now the CI, developers or testers can pull from the [[REF=, ABS_Repo]] and run the [[REF=, ABS_Test_Case]] with no additional configurations.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# **Advanced Visualization**
|
|
2
|
+
ActorJs has a focus on visualization so the developer and tester can see what happens and find problems as fast as possible.
|
|
3
|
+
|
|
4
|
+
### **Sequence Diagram**
|
|
5
|
+
A sequence diagram is rendered in real time, showing sockets listening, connecting, closing, and messages sent. When gui testing, events are shown, including new page, click, and type.
|
|
6
|
+
ActorJs also offer advanced filtering of events.
|
|
7
|
+
|
|
8
|
+
<img class="markup_image" onclick="if('110%' === this.style.width) {this.style.width = '90%';} else {this.style.width = '110%';}" src="/abs-images/images/visualization/test-case-sequence-diagram.png" style="width:90%;margin-top:10px;">
|
|
9
|
+
|
|
10
|
+
### **Log**
|
|
11
|
+
Logs are rendered in real time. There is a big variety of log types that are easy to filter.
|
|
12
|
+
|
|
13
|
+
<img class="markup_image" onclick="if('110%' === this.style.width) {this.style.width = '90%';} else {this.style.width = '110%';}" src="/abs-images/images/visualization/test-case-log.png" style="width:90%;margin-top:10px;">
|
|
14
|
+
|
|
15
|
+
### **Execution - Test Case**
|
|
16
|
+
The state of all [[REF=, ABS_Actor]]s are rendered in real time. This makes it easy to see which [[REF=, ABS_Actor]]s succeeded and which [[REF=, ABS_Actor]]s failed.
|
|
17
|
+
|
|
18
|
+
<img class="markup_image" onclick="if('110%' === this.style.width) {this.style.width = '90%';} else {this.style.width = '110%';}" src="/abs-images/images/visualization/test-case-execution.png" style="width:90%;margin-top:10px;">
|
|
19
|
+
|
|
20
|
+
### **Execution - Test Suite**
|
|
21
|
+
The Test Suite view renders results in real time and with a variety of result codes, it is easy to understand what happens. It also visualizes the duration of each test case on a warm/cold scale.
|
|
22
|
+
|
|
23
|
+
<img class="markup_image" onclick="if('110%' === this.style.width) {this.style.width = '90%';} else {this.style.width = '110%';}" src="/abs-images/images/visualization/test-suite-execution.png" style="width:90%;margin-top:10px;">
|
|
24
|
+
|
|
25
|
+
### **Documentation**
|
|
26
|
+
Advanced documentation with [[REF=, MARKUP]] is available. It easy to do node diagrams, sequence diagrams, flowcharts, and more.
|
|
27
|
+
|
|
28
|
+
<img class="markup_image" onclick="if('110%' === this.style.width) {this.style.width = '90%';} else {this.style.width = '110%';}" src="/abs-images/images/visualization/sut.png" style="width:90%;margin-top:10px;">
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# **Debugging**
|
|
2
|
+
ActorJs offers real-time debugging for all you test cases. You can set breakpoints, view data and more. This will help you to find problems in your test cases much faster.
|
|
3
|
+
|
|
4
|
+
<img class="markup_image" onclick="if('110%' === this.style.width) {this.style.width = '90%';} else {this.style.width = '110%';}" src="/abs-images/images/visualization/test-case-debugging.png" style="width:90%;margin-top:10px;">
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# **Divide and Reuse**
|
|
2
|
+
|
|
3
|
+
The essence of ActorJs is to break down the entire test scenario into abstractions and small building blocks to accelerate test and development. The aim is to:
|
|
4
|
+
* Maximize reuse and maintainability
|
|
5
|
+
* Eliminate simulators, mocked-up processes, and real systems from the development phase and early test phases
|
|
6
|
+
* Automate the test environment and surroundings
|
|
7
|
+
* Automate handling of [[REF=, ABS_Addressing]], [[REF=, ABS_Test_Data]], [[REF=, ABS_Verification_Data]], and [[REF=, ABS_Content]] used in [[REF=, ABS_Test_Cases]]
|
|
8
|
+
|
|
9
|
+
This will significantly accelerate development and test and dramatically reduce costs in development, test, and maintenance phases.
|
|
10
|
+
|
|
11
|
+
[[ANCHOR={"id":"the-architecture-data-abstractions","visible":true}]]
|
|
12
|
+
[[NOTE={"guid":"1f6c1954-18b5-4f2f-87eb-8291d86c3a8b"}]]
|
|
13
|
+
## **Abstractions**
|
|
14
|
+
You can organize, create, edit, and delete the following data components: [[REF=, ABS_Repo]], [[REF=, ABS_System_Under_Test]], [[REF=, ABS_Function_Under_Test]], [[REF=, ABS_Test_Suite]], [[REF=, ABS_Test_Case]], [[REF=, ABS_Actor]], [[REF=, ABS_Stack]], [[REF=, ABS_Addressing]], [[REF=Global Test Data, TOOL_Global_Test_Data]], and [[REF=, ABS_Content]].
|
|
15
|
+
|
|
16
|
+
```node
|
|
17
|
+
Config(nodeWidth: 110, nodeHeight: 20, nodeWidthBetween: 25, nodeHeightBetween: 10, widthBias: 10, heightBias: 10, border: true, backgroundColor: default)
|
|
18
|
+
|
|
19
|
+
Nodes[Repos, Systems Under Test, Functions Under Test, Test Suites]
|
|
20
|
+
Nodes[, Actors, , Test Cases]
|
|
21
|
+
Nodes[, Stacks]
|
|
22
|
+
Nodes[, Addresses]
|
|
23
|
+
Nodes[, Global Test Data]
|
|
24
|
+
Nodes[, Content]
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
Repos => Systems Under Test[http]:
|
|
28
|
+
Repos => Actors[http]:
|
|
29
|
+
Repos => Stacks[http]:
|
|
30
|
+
Repos => Addresses[http]:
|
|
31
|
+
Repos => Global Test Data[http]:
|
|
32
|
+
Repos => Content[http]:
|
|
33
|
+
Systems Under Test => Functions Under Test[http]:
|
|
34
|
+
Functions Under Test => Test Suites[http]:
|
|
35
|
+
Functions Under Test => Test Cases[http]:
|
|
36
|
+
```
|
|
37
|
+
There are many different [[REF=, ABS_Repo]]s and all data is always stored in a [[REF=, ABS_Repo]]. Some components are stored in other components, such as a [[REF=, ABS_Test_Case]], which always belongs to a [[REF=, ABS_Function_Under_Test]] and so on...
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# **MARKUP - API-STATUS**
|
|
2
|
+
[[DOC-STATUS=FULLY, ]]
|
|
3
|
+
|
|
4
|
+
[[NOTE={"guid":"3685f8d6-af82-4649-bd8e-e3df4148e865"}]]
|
|
5
|
+
[[ANCHOR={"id":"93aa604a-01c2-4858-b11e-80e3b677bb0a","visible":true}]]
|
|
6
|
+
## **Description**
|
|
7
|
+
Api-Status describes the status of the API.
|
|
8
|
+
1) **Deprecated:** Do not use the API for new functionality and try to refactor your old code to not use use the API. The API might be removed in the future.
|
|
9
|
+
[[API-STATUS=DEPRECATED, ]]
|
|
10
|
+
</br>
|
|
11
|
+
|
|
12
|
+
2) **Experimental:** The API/Stack is new and might be changed in the future. For stacks it might mean that the stack is not used with real systems.
|
|
13
|
+
[[API-STATUS=EXPERIMENTAL, ]]
|
|
14
|
+
</br>
|
|
15
|
+
|
|
16
|
+
3) **Stable:** The API is stable and stacks are used with real systems.
|
|
17
|
+
[[API-STATUS=STABLE, ]]
|
|
18
|
+
</br>
|
|
19
|
+
|
|
20
|
+
4) **Legacy:** There are better alternatives to the API/Stack do not use it for new implementations. The API/Stack will remain and will not be removed.
|
|
21
|
+
[[API-STATUS=LEGACY, ]]
|
|
22
|
+
</br>
|
|
23
|
+
|
|
24
|
+
### **Parameters**
|
|
25
|
+
```table
|
|
26
|
+
Config(classHeading: )
|
|
27
|
+
|
|
28
|
+
|Parameters |
|
|
29
|
+
|Name |Type |Description |
|
|
30
|
+
|comment|[[REF=,MDN_String]]|You can add an comment to the status.|
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
```escape
|
|
34
|
+
|
|
35
|
+
[[API-STATUS=DEPRECATED, ]]
|
|
36
|
+
[[API-STATUS=EXPERIMENTAL, Will soon be stable.]]]
|
|
37
|
+
[[DOAPIC-STATUS=STABLE, ]]
|
|
38
|
+
[[API-STATUS=LEGACY, ]]
|
|
39
|
+
```
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# **Markup - Chart Line**
|
|
2
|
+
[[DOC-STATUS=NOT-YET, ]]
|
|
3
|
+
|
|
4
|
+
```chart-line
|
|
5
|
+
Title: Demo title
|
|
6
|
+
Config(width: 600, height: 300, widthBias: 40, heightBias: 40)
|
|
7
|
+
|
|
8
|
+
Axis(x, 20)
|
|
9
|
+
Axis(y, 10)
|
|
10
|
+
|
|
11
|
+
Grid(1, 1)
|
|
12
|
+
|
|
13
|
+
Line1(blue)[0,1][1,5][2,5][3,3][4,9][5,8][6,9][7,10][20,9]
|
|
14
|
+
Line2(red)[0,0][1,7][2,2][3,9][20,10]
|
|
15
|
+
Line3(yellow)[0,0][20,4]
|
|
16
|
+
Line4(green)[0,0][20,8]
|
|
17
|
+
|
|
18
|
+
```
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# **MARKUP - DOC-STATUS**
|
|
2
|
+
[[DOC-STATUS=FULLY, ]]
|
|
3
|
+
|
|
4
|
+
[[NOTE={"guid":"3685f8d6-af82-4649-bd8e-e3df4148e865"}]]
|
|
5
|
+
[[ANCHOR={"id":"93aa604a-01c2-4858-b11e-80e3b677bb0a","visible":true}]]
|
|
6
|
+
## **Description**
|
|
7
|
+
Documentation-Status describes the status of current documentation. In an early phase you might want to export functionallity before the documentation is ready. Then it is a good idea to notify the readers of the status of the documentation. The documentation status is divided into four levels.
|
|
8
|
+
1) **Not documented yet**
|
|
9
|
+
[[DOC-STATUS=NOT-YET, ]]
|
|
10
|
+
</br>
|
|
11
|
+
|
|
12
|
+
2) **Partly documented:** There are some documentation of the core parts. Usually that is enough for you to use the API.
|
|
13
|
+
[[DOC-STATUS=PARTLY, ]]
|
|
14
|
+
</br>
|
|
15
|
+
|
|
16
|
+
3) **Most documented:** Most parts of the documentation is in place so you can use most of the advanced functionality.
|
|
17
|
+
[[DOC-STATUS=MOSTLY, ]]
|
|
18
|
+
</br>
|
|
19
|
+
|
|
20
|
+
4) **Fully documented:** The documentation is complete. You can now use the full functionality.
|
|
21
|
+
[[DOC-STATUS=FULLY, ]]
|
|
22
|
+
</br>
|
|
23
|
+
|
|
24
|
+
### **Parameters**
|
|
25
|
+
```table
|
|
26
|
+
Config(classHeading: )
|
|
27
|
+
|
|
28
|
+
|Parameters |
|
|
29
|
+
|Name |Type |Description |
|
|
30
|
+
|comment|[[REF=,MDN_String]]|You can add an comment to the status.|
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
```escape
|
|
34
|
+
|
|
35
|
+
[[DOC-STATUS=PARTLY, Next Release will contain fully documentation.]]
|
|
36
|
+
[[DOC-STATUS=MOSTLY, ]]
|
|
37
|
+
[[DOC-STATUS=MOSTLY, ]]
|
|
38
|
+
[[DOC-STATUS=FULLY, ]]
|
|
39
|
+
```
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# **Markup - Document**
|
|
2
|
+
[[DOC-STATUS=PARTLY, ]]
|
|
3
|
+
|
|
4
|
+
## **Description**
|
|
5
|
+
Document Markup is a special markup combining other markups. The other markups used are:
|
|
6
|
+
* [Lab](markup-lab)
|
|
7
|
+
* [Markup](markup-markup)
|
|
8
|
+
* [Sequence Diagram](markup-sequence-diagram)
|
|
9
|
+
* [State Machine](markup-state-machine)
|
|
10
|
+
* [Test Case](markup-test-case)
|
|
11
|
+
* [Test Suite](markup-test-suite)
|
|
12
|
+
|
|
13
|
+
### **Example Image**
|
|
14
|
+
|
|
15
|
+
#### **Lab**
|
|
16
|
+
To be done
|
|
17
|
+
|
|
18
|
+
#### **Markup - [Markup](markup)**
|
|
19
|
+
Normal **text** markup is.
|
|
20
|
+
* *italic*
|
|
21
|
+
* **bold**
|
|
22
|
+
|
|
23
|
+
#### **Markup - [Sequence Diagram](sequence-diagram)**
|
|
24
|
+
```seq
|
|
25
|
+
Config(nodeWidth: 150, nodeMessageHeight: 17, nodeEventHeight: 10, widthBias: 30, heightBias: 30, lineNumbers: false, border: true, backgroundColor: default)
|
|
26
|
+
|
|
27
|
+
Nodes[A, B]
|
|
28
|
+
A -o B[http]: connect
|
|
29
|
+
A => B[http]: GET
|
|
30
|
+
B => A[http]: 200 OK
|
|
31
|
+
A -x B[http]: disconnect
|
|
32
|
+
```
|
|
33
|
+
#### **Markup - [State Machine](state-machine)**
|
|
34
|
+
```state
|
|
35
|
+
Config(width: 400, height: 200, widthBias: 25, heightBias: 25)
|
|
36
|
+
|
|
37
|
+
States[A, B, C]
|
|
38
|
+
|
|
39
|
+
A -> B[normal]: 1
|
|
40
|
+
B -> C[success]: 2
|
|
41
|
+
C -> B[failure]: 3
|
|
42
|
+
B -> A[external]: 4
|
|
43
|
+
```
|
|
44
|
+
**### Example Markup**
|
|
45
|
+
|
|
46
|
+
\#\#\#\# Lab
|
|
47
|
+
To be done
|
|
48
|
+
|
|
49
|
+
\#\#\#\# Markup - \[Markup\](markup)
|
|
50
|
+
Normal \*\*text\*\* markup is.
|
|
51
|
+
\* \*italic\*
|
|
52
|
+
\* \*\*bold\*\*
|
|
53
|
+
|
|
54
|
+
\#\#\#\# Markup - \[Sequence Diagram\](sequence-diagram)
|
|
55
|
+
\`\`\`seq
|
|
56
|
+
Nodes[A, B]
|
|
57
|
+
A -o B[http]: connect
|
|
58
|
+
A => B[http]: GET
|
|
59
|
+
B => A[http]: 200 OK
|
|
60
|
+
A -x B[http]: disconnect
|
|
61
|
+
|
|
62
|
+
\`\`\`
|
|
63
|
+
|
|
64
|
+
\#\#\#\# Markup - \[State Machine\](state-machine)
|
|
65
|
+
\`\`\`state
|
|
66
|
+
States[A, B, C]
|
|
67
|
+
A -> B[normal]: 1
|
|
68
|
+
B -> C[success]: 2
|
|
69
|
+
C -> B[failure]: 3
|
|
70
|
+
B -> A[external]: 4
|
|
71
|
+
|
|
72
|
+
\`\`\`
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# **Markup - Flowchart**
|
|
2
|
+
[[DOC-STATUS=MOSTLY, ]]
|
|
3
|
+
|
|
4
|
+
## **Description**
|
|
5
|
+
Flowchart Markup provides the documentation for flowchart images.
|
|
6
|
+
|
|
7
|
+
### **Example Image**
|
|
8
|
+
```flow
|
|
9
|
+
Title: Demo Flowchart Markup
|
|
10
|
+
Blocks[, Start(start:::)]
|
|
11
|
+
Blocks[]
|
|
12
|
+
Blocks[, aCalc(action:::)]
|
|
13
|
+
Blocks[]
|
|
14
|
+
Blocks[, dNegative(decision:Negative value::), ]
|
|
15
|
+
Blocks[]
|
|
16
|
+
Blocks[aYes(action:Do some...::), , aNo(action:Do some...::)]
|
|
17
|
+
Blocks[]
|
|
18
|
+
Blocks[, End(end:::)]
|
|
19
|
+
|
|
20
|
+
Start => aCalc[unknown]:
|
|
21
|
+
aCalc => dNegative[unknown]:
|
|
22
|
+
dNegative => aYes[unknown]: yes
|
|
23
|
+
dNegative => aNo[unknown]: no
|
|
24
|
+
aYes => End[unknown]:
|
|
25
|
+
aNo => End[unknown]:
|
|
26
|
+
```
|
|
27
|
+
### **Example Markup**
|
|
28
|
+
|
|
29
|
+
```escape
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
\`\`\`flow
|
|
33
|
+
Title: Demo Flowchart Markup
|
|
34
|
+
Blocks[, Start(start:::)]
|
|
35
|
+
Blocks[]
|
|
36
|
+
Blocks[, aCalc(action:::)]
|
|
37
|
+
Blocks[]
|
|
38
|
+
Blocks[, dNegative(decision:Negative value::), ]
|
|
39
|
+
Blocks[]
|
|
40
|
+
Blocks[aYes(action:Do some...::), , aNo(action:Do some...::)]
|
|
41
|
+
Blocks[]
|
|
42
|
+
Blocks[, End(end:::)]
|
|
43
|
+
|
|
44
|
+
Start => aCalc[unknown]:
|
|
45
|
+
aCalc => dNegative[unknown]:
|
|
46
|
+
dNegative => aYes[unknown]: yes
|
|
47
|
+
dNegative => aNo[unknown]: no
|
|
48
|
+
aYes => End[unknown]:
|
|
49
|
+
aNo => End[unknown]:
|
|
50
|
+
\`\`\`
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## **Definitions**
|
|
54
|
+
#### **Title**
|
|
55
|
+
**format:** \'Title: *`title text`*\'
|
|
56
|
+
**description:** the title of the node diagram image
|
|
57
|
+
**example:** Title: Demo Node Diagram Markup
|
|
58
|
+
#### **Nodes**
|
|
59
|
+
**format:**
|
|
60
|
+
Blocks[*node 0,0`name`(`type: data: color: link`), node 0,1`name`(`type: data: color: link`), ..., node 0,n-1`name`(`type: data: color: link`)*]
|
|
61
|
+
Blocks[...]
|
|
62
|
+
Blocks[*node m-1,0`name`(`type: data: color: link`), node m-1,1`name`(`type: data: color: link`), ..., node m-1,n-1`name`(`type: data: color: link`)*]
|
|
63
|
+
|
|
64
|
+
**description:** *Blocks* and an arrays of the block names. One array for every row.
|
|
65
|
+
* **name:** [[REF=`<string>`, MDN_string]]*[optional]* the name of the block. **default:** if there is no name the position is moved for the next block.
|
|
66
|
+
* **type:** [[REF=`<string>`, MDN_string]]*[optional]* the type of the blyck. **default:** action. Valid types are:
|
|
67
|
+
* **action**
|
|
68
|
+
* **connector-end**
|
|
69
|
+
* **connector-start**
|
|
70
|
+
* **decision**
|
|
71
|
+
* **end**
|
|
72
|
+
* **start**
|
|
73
|
+
* **data:** [[REF=`<string>`, MDN_string]]*[optional]* the text in the block.
|
|
74
|
+
* **color:** [[REF=`<string>`, MDN_string]]*[optional]* color of the block. Same as used in html css.
|
|
75
|
+
* **link:** [[REF=`<string>`, MDN_string]]*[optional]* link to another page from the block.
|
|
76
|
+
|
|
77
|
+
**example:** Blocks[A, B][C, D]
|
|
78
|
+
|
|
79
|
+
#### **Action**
|
|
80
|
+
**format:** '*`from node`* `action operator` *`to node`*[*`css type`*]: *`action text`*'
|
|
81
|
+
**description:**
|
|
82
|
+
* **from node:** the node who makes the action
|
|
83
|
+
* **to node:** the node who receives the action
|
|
84
|
+
* **action operator:** decides which action made
|
|
85
|
+
* **=>:** send a message
|
|
86
|
+
* **->:** send a part of a message
|
|
87
|
+
* **<=>:** send and receive a message
|
|
88
|
+
* **<->:** send and receive a part of a message
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# **Markup - HTML**
|
|
2
|
+
[[DOC-STATUS=PARTLY, ]]
|
|
3
|
+
|
|
4
|
+
## **Description**
|
|
5
|
+
The HTML Markup provides the documentation with some predefined HTML images.
|
|
6
|
+
|
|
7
|
+
### **Example Image**
|
|
8
|
+
|
|
9
|
+
```object
|
|
10
|
+
|
|
11
|
+
[button](icon-file-save, markup_color, Save file)
|
|
12
|
+
[br]
|
|
13
|
+
[button](icon-markup-open, markup_color, Edit file)
|
|
14
|
+
[br]
|
|
15
|
+
[log](Success, Mon. 03 Oct 2016 22:52:05 GMT : 901.764, DemoLogLocal[1], Demo success log., Actors-global.demo.log.DemoLogLocal.js)
|
|
16
|
+
[br]
|
|
17
|
+
[log_start](Mon. 03 Oct 2016 22:52:05 GMT : 901.764)
|
|
18
|
+
[br]
|
|
19
|
+
[log_end](Success, 0.764ms)
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### **Example Markup**
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
## **Definitions**
|
|
26
|
+
### **Anchor**
|
|
27
|
+
**format:** \'[anchor](`link`)\'
|
|
28
|
+
**description:** Bootstrap buttons using [Glyphicons](http://getbootstrap.com/components/#glyphicons).
|
|
29
|
+
* `glyphicon name`: the name of the glyphicon to be viewed on the button and classes to the \<span\>.
|
|
30
|
+
* `text`: the optional text to be shown after the button. The text will be parsed through [Markup](markup-markup).
|
|
31
|
+
|
|
32
|
+
**example:** An anchor link
|
|
33
|
+
```object
|
|
34
|
+
|
|
35
|
+
[anchor](aaaaa)
|
|
36
|
+
```
|
|
37
|
+
### **Button**
|
|
38
|
+
**format:** \'[button](`icon name`, colorMark, [`text`])\'
|
|
39
|
+
**description:** Bootstrap buttons using [Glyphicons](http://getbootstrap.com/components/#glyphicons).
|
|
40
|
+
* `glyphicon name`: the name of the glyphicon to be viewed on the button and classes to the \<span\>.
|
|
41
|
+
* `text`: the optional text to be shown after the button. The text will be parsed through [Markup](markup-markup).
|
|
42
|
+
|
|
43
|
+
**example:** A save file button.
|
|
44
|
+
```object
|
|
45
|
+
|
|
46
|
+
[button](icon-file-save, markup_color, Save file)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### **Toolbar**
|
|
50
|
+
**format:** \'[toolbar](`glyphicon name`, [`text`])\'
|
|
51
|
+
```object
|
|
52
|
+
|
|
53
|
+
[toolbar]()
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### **Line break**
|
|
57
|
+
**format:** \'[br]\'
|
|
58
|
+
**description:** Adding a line break to the document inside the HTML-Markup. The html element \<br /\> will be added.
|
|
59
|
+
**example:*** A line break
|
|
60
|
+
Hello here comes the line break.
|
|
61
|
+
```object
|
|
62
|
+
|
|
63
|
+
[br]
|
|
64
|
+
```
|
|
65
|
+
Now we are after the line break.
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
### **Log**
|
|
70
|
+
**format:** \'[log](`log type`, `date`, `actor`, `log`, `file name`)\'
|
|
71
|
+
**description:** Adding a log row image to the document.
|
|
72
|
+
* `log type`: The name of the log type.
|
|
73
|
+
* **Engine:** Engine log.
|
|
74
|
+
* **Debug:** Debug log.
|
|
75
|
+
* **Error:** Error log.
|
|
76
|
+
* **Warning:** Warning log.
|
|
77
|
+
* **IP:** IP log.
|
|
78
|
+
* **Success:** Verification Success log.
|
|
79
|
+
* **Failure:** Verification Failure log.
|
|
80
|
+
* `date`: A string. A comma sign must be escaped. '\\,'
|
|
81
|
+
* `actor`: A string. A comma sign must be escaped. '\\,'
|
|
82
|
+
* `log`: A string. A comma sign must be escaped. '\\,'
|
|
83
|
+
* `file name`: A string. A comma sign must be escaped. '\\,'
|
|
84
|
+
|
|
85
|
+
**example:** A warning log.
|
|
86
|
+
|
|
87
|
+
```object
|
|
88
|
+
|
|
89
|
+
[log](Warning, Mon. 03 Oct 2016 22:52:05 GMT : 901.764, DemoLogLocal[1], Demo warninglog., Actors-global.demo.log.DemoLogLocal.js)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### **Log Start**
|
|
93
|
+
**format:** \'\[log_start\](`date`)\'
|
|
94
|
+
**description:** Adding a log start row image to the document.
|
|
95
|
+
* `date`: A string. A comma sign must be escaped. '\\,'
|
|
96
|
+
|
|
97
|
+
**example:** A [Test Case](test-cases) start log.
|
|
98
|
+
```object
|
|
99
|
+
|
|
100
|
+
[log_start](Mon. 03 Oct 2016 22:52:05 GMT : 901.764)
|
|
101
|
+
```
|
|
102
|
+
### **Log End**
|
|
103
|
+
**format:** \'[log_end](`result`, `date`)\'
|
|
104
|
+
**description:** Adding a log end row image to the document.
|
|
105
|
+
* `result`: A string
|
|
106
|
+
* **None:**
|
|
107
|
+
* **n/a:**
|
|
108
|
+
* **Success:**
|
|
109
|
+
* **n_exec:**
|
|
110
|
+
* **Interrupt:**
|
|
111
|
+
* **Error:**
|
|
112
|
+
* **Failure:**
|
|
113
|
+
* **Timeout:**
|
|
114
|
+
* `duration`: A string. A comma sign must be escaped. '\\,'
|
|
115
|
+
|
|
116
|
+
**example:** A [Test Case](test-cases) end log.
|
|
117
|
+
```object
|
|
118
|
+
|
|
119
|
+
[log_end](Error, 0.321ms)
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# **Markup - IE**
|
|
2
|
+
[[DOC-STATUS=FULLY, ]]
|
|
3
|
+
|
|
4
|
+
[[NOTE={"guid":"0f59269d-1e45-453e-9c3c-fa273409977c"}]]
|
|
5
|
+
[[ANCHOR={"id":"e46be52f-6d15-4b38-96c4-23245738826a","visible":true}]]
|
|
6
|
+
## **Description**
|
|
7
|
+
I.e. stands for id est, which means "that is". ActorJs highlights that like this:
|
|
8
|
+
[[IE=This is my i.e. statement]]
|
|
9
|
+
to make it easy to find see where there is lot of text.
|
|
10
|
+
|
|
11
|
+
```escape
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
Here I have an i.e. [[IE=This is my i.e. statement]] inside my text.
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Here I have an i.e. [[IE=This is my i.e. statement]] inside my text.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# **Markup - Image**
|
|
2
|
+
[[API-STATUS=DEPRECATED, ]]
|
|
3
|
+
[[DOC-STATUS=PARTLY, ]]
|
|
4
|
+
|
|
5
|
+
## **Description**
|
|
6
|
+
Image Markup provides the documentation with simple images. The images will be rendered as svg images.
|
|
7
|
+
|
|
8
|
+
### **Example Image**
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### **Example Markup**
|
|
13
|
+
|
|
14
|
+
```escape
|
|
15
|
+
|
|
16
|
+
\`\`\`img
|
|
17
|
+
|svg |
|
|
18
|
+
|width |100% |
|
|
19
|
+
|height|200px|
|
|
20
|
+
|
|
21
|
+
|rect |
|
|
22
|
+
|x |100 |
|
|
23
|
+
|y |10 |
|
|
24
|
+
|width |150 |
|
|
25
|
+
|height |150 |
|
|
26
|
+
|stroke-width|5px |
|
|
27
|
+
|stroke |blue|
|
|
28
|
+
|fill |red |
|
|
29
|
+
|
|
30
|
+
|circle |
|
|
31
|
+
|cx |50 |
|
|
32
|
+
|cy |50 |
|
|
33
|
+
|r |40 |
|
|
34
|
+
|stroke |green |
|
|
35
|
+
|stroke-width|4px |
|
|
36
|
+
|fill |yellow|
|
|
37
|
+
|
|
38
|
+
|ellipse |
|
|
39
|
+
|cx |360 |
|
|
40
|
+
|cy |80 |
|
|
41
|
+
|rx |100 |
|
|
42
|
+
|ry |50 |
|
|
43
|
+
|fill |yellow|
|
|
44
|
+
|stroke |purple|
|
|
45
|
+
|stroke-width|3px |
|
|
46
|
+
|
|
47
|
+
|line |
|
|
48
|
+
|x1 |480px|
|
|
49
|
+
|y1 |10px |
|
|
50
|
+
|x2 |540px|
|
|
51
|
+
|y2 |150px|
|
|
52
|
+
|stroke |green|
|
|
53
|
+
|stroke-width|5px |
|
|
54
|
+
\`\`\`
|
|
55
|
+
```
|