Skip to content

Commit 69717a7

Browse files
Links, TODOs
1 parent 33de092 commit 69717a7

File tree

7 files changed

+17
-16
lines changed

7 files changed

+17
-16
lines changed

AutoCheck.md

+9-9
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,16 @@ Standard PHP detection class supports this (which works with [Xdebug](http://xde
2222
Positive checks validate that the page contains elements that match given selector(s). However, it can't validate that HTML of a page conforms to HTML standard. That's because Firefox automatically fixes incorrect HTML and it adds missing necessary elements.
2323

2424
## Configuration ##
25-
Configure these checks at {{chromeUrl}} _chrome://selite-settings/content/tree.xul?module=extensions.selite-settings.common_. In order to use [AutoCheck](AutoCheck) you must select at least `autoCheckDetector` or `autoCheckDetectorCustom`. Other fields are optional.<!-- TODO format options as `code`-->
25+
Configure these checks at {{chromeUrl}} _chrome://selite-settings/content/tree.xul?module=extensions.selite-settings.common_. In order to use [AutoCheck](AutoCheck) you must select at least `autoCheckDetector` or `autoCheckDetectorCustom`. Other fields are optional.
2626

27-
* autoCheckAssert - whether an occurrence should trigger an assert failure; by default it triggers a validation failure rather than an assert failure
28-
* autoCheckDetector - choose a standard detection class to use; or set it to null/undefined if you use a custom class
29-
* autoCheckDetectorCustom - enter a name of the custom detection class (which you must load into [Core scope] e.g. via [Bootstrap](Bootstrap)); used only if autoCheckDetector is null/undefined
30-
* autoCheckIgnored - the format of entries depends on the detection class. [AutoCheck](AutoCheck) reports failures unless they match an autoCheckIgnored entry. Use autoCheckIgnored to match already reported bugs (so that they don't get reported again).
27+
* `autoCheckAssert` - whether an occurrence should trigger an assert failure; by default it triggers a validation failure rather than an assert failure
28+
* `autoCheckDetector` - choose a standard detection class to use; or set it to `null` or `undefined` if you use a custom class
29+
* `autoCheckDetectorCustom` - enter a name of the custom detection class (which you must load into [Core scope] e.g. via [Bootstrap](Bootstrap)); used only if `autoCheckDetector` is `null` or `undefined`
30+
* `autoCheckIgnored` - the format of entries depends on the detection class. [AutoCheck](AutoCheck) reports failures unless they match an `autoCheckIgnored` entry. Use `autoCheckIgnored` to match already reported bugs (so that they don't get reported again).
3131
* for PHP enter XPath logical conditions (not whole XPath expressions). Those would match either PHP warning/notice/error message (description) or a leaf file path (where the failure occurred). The conditions can refer to that text node by '.' (and they must not refer to parent/sibling nodes). Examples are
32-
* contains(., 'Undefined variable')
33-
* contains(., 'dbadmin.inc')
34-
* autoCheckRefused - enter locator(s) to be refused; none of the locator(s) must match any element, otherwise the page fails
35-
* autoCheckRequired - enter locator(s) to be required; each locator must match at least one element, otherwise the page fails
32+
* `contains(., 'Undefined variable')`
33+
* `contains(., 'dbadmin.inc')`
34+
* `autoCheckRefused` - enter locator(s) to be refused; none of the locator(s) must match any element, otherwise the page fails
35+
* `autoCheckRequired` - enter locator(s) to be required; each locator must match at least one element, otherwise the page fails
3636

3737
(Those fields are not defined in _chrome://selite-settings/content/common\_settings\_module.js_. Instead, they are added on the fly by _chrome://selite-auto-check/content/SeLiteExtensionSequencerManifest.js_).

Bootstrap.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ Selenium.prototype.methodName= function(pqr...) {
4343
See also {{navFunctionIntercepts}}.
4444

4545
## Adding/modifying Selenese commands ##
46-
If you introduce or modify any Selenese [commands][command] - i.e. <code>Selenium.prototype.do<em>Xyz</em>, Selenium.prototype.get<em>Xyz</em></code> or <code>Selenium.prototype.is<em>Xyz</em></code> - then those will be available to your [case]/[suite] only **after** you run any Selenese command first. <!-- TODO don't know why -->
46+
If you introduce or modify any Selenese [commands][command] - i.e. <code>Selenium.prototype.do<em>Xyz</em>, Selenium.prototype.get<em>Xyz</em></code> or <code>Selenium.prototype.is<em>Xyz</em></code> - then those will be available to your [case]/[suite] only **after** you run any Selenese command first.
4747

4848
## Switching between files ##
4949
If you remove a filename from `bootstrapCoreExtensions` (or you switch to a different default [set] or a [suite] with a different [set] associated with it), Bootstrap can't 'unload' a file that it has loaded already. If you change that option later and you add the filename back, it won't re-run the file, unless its timestamp has changed.

ClassicSelenese.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ These notes on Selenese syntax are on top of [Selenium documentation](http://doc
1212
# Auto-generated Selenese commands #
1313
Selenese [commands][command] are defined in these primary forms: <code>xyz, <strong>get</strong>Xyz, <strong>is</strong>Xyz</code> or <code><strong>is</strong>Xyz<strong>Present</strong></code>. Selenium auto-generates their variations (listed below).
1414

15-
Selenium IDE shows the original reference for both the primary and auto-generated commands. However, the online reference contains only the primary commands. So if you'd like to locate them online (or in the source), use the following. (See also `loadSeleniumCommands()` in Selenium IDE's `treeView.js`.<!-- TODO link to chrome & SE IDE Github-->)
15+
Selenium IDE shows the original reference for both the primary and auto-generated commands. However, the online reference contains only the primary commands. So if you'd like to locate them online (or in the source), use the following. (See also `loadSeleniumCommands()` in Selenium IDE's `treeView.js`.<!-- TODO link to chrome & SE IDE Github and/or selite.github.io/API-->)
1616

1717
<table class="table">
1818
<thead>
@@ -108,7 +108,7 @@ Find a basic example at Selenium Documentation > [Test Design Considerations](ht
108108
## Stored variables
109109
Some Selenese [commands][command] store variables, to be used by later steps. [SelBlocksGlobal](SelBlocksGlobal) manages scope of such variables. When inside a [SelBlocksGlobal](SelBlocksGlobal) function, you can only use stored variables set in that function (or passed as parameters to it). The local scope also means: if you set a stored variable within a Selenese function and the same stored variable exists in the caller scope (that invoked the current function), the variable in the caller scope won't be affected.
110110

111-
<!-- TODO Put an explicit rule first, then details. Merge/link to EnhancedSyntax: -->Parameters of Selenese commands can access stored variables as `${name-of-the-variable}`. Those get replaced by the value of the variable. However, if a command processes the parameter as a Javascript expression (e.g. `storeEval, getEval` or when using [EnhancedSelenese](EnhancedSelenese)), and if the variable contains an array/object or a non-numeric string (possibly with an apostrophe or quotation mark), then replacement of `${name-of-the-variable}` won't work robustly. For those cases use `storedVars.name-of-the-variable` or `storedVars['name-of-the-variable']`. See also [EnhancedSelenese](EnhancedSelenese).
111+
Parameters of Selenese commands can access stored variables as `${name-of-the-variable}`. Those get replaced by the value of the variable. However, if a command processes the parameter as a Javascript expression (e.g. `storeEval, getEval` or when using [EnhancedSelenese](EnhancedSelenese)), and if the variable contains an array/object or a non-numeric string (possibly with an apostrophe or quotation mark), then replacement of `${name-of-the-variable}` won't work robustly. For those cases use `$name-of-the-variable` (or `storedVars.name-of-the-variable` or `storedVars['name-of-the-variable']`). See also [EnhancedSelenese](EnhancedSelenese).
112112

113113
## Javascript variables
114114
Sometimes you want a _global_ variable that spreads across Selenese functions (which stored variables can't). Use _native_ Javascript variables for it. Set them using [command] `getEval` with `target` being: `variable1=valueOrExpression, variable2=valueOrExpression....`

DocumentationStandard.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ SeLite doesn't use GitHub Wiki, which doesn't utilise screen well, especially on
4444
## Drawn diagrams
4545
Don't use UML tools, as they are more restrictive and less efficient. <!-- That"s why I didn"t consider using e.g. http://plantuml.sourceforge.net and http://sourceforge.net/projects/plantumlnb -->
4646

47-
Draw diagrams in LibreOffice/OpenOffice and save them as `.odg`. Then Edit > Select All; File > Export (export the selection, rather than the whole drawing area). Export as a .png, not interlaced, with lowest compression. Then commit both .odg and .png to git. TODO: In documentation use URLs to the .png images from git ([selite/diagrams/](https://github.com/selite/selite/tree/master/diagrams) > navigate to `.png` file > get URL of 'Raw' button).
47+
Draw diagrams in LibreOffice/OpenOffice and save them as `.odg`. Then Edit > Select All; File > Export (export the selection, rather than the whole drawing area). Export as a .png, not interlaced, with lowest compression. Then commit both .odg and .png to git. In documentation use URLs of 'Raw' images from git (e.g. [selite/diagrams/](https://github.com/selite/selite/tree/master/diagrams) > navigate to `.png` file > get URL of 'Raw' button).
4848

4949
### Versions of LibreOffice
5050
* LibreOffice version that came with CentOS 6.4 didn't export as `.png` well - the quality was low.
@@ -58,7 +58,7 @@ Please
5858
* use colours black, Chart 11 for red, Green 4, Chart 12 for blue, Chart 3 for yellow
5959

6060
## Textual object diagrams
61-
Object Diagrams draw ownership/reference relationships between objects, fields and functions. They usually don't necessarily describe class inheritance (which is clear from the source<!--TODO: and from Javadoc -->).
61+
Object Diagrams draw ownership/reference relationships between objects, fields and functions. They usually don't necessarily describe class inheritance (which is clear from the source and from [API]).
6262

6363
Text diagrams don't need to be esthetic, but clear and easy to edit - so you can quickly update them whenever you change the relevant code. They are in plain text, with **`<, >, ^, v`** for connections. The diagrams look like this:
6464

PackagedScripts.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Selenium IDE doesn't indicate the current [suite]'s folder in the GUI. Therefore
2626

2727
Reasoning: A case can open local pages relative to its location, or to location of the current suite (the one loaded). Either choice has some positives, and can also be confusing. However, using URLs relative to the current suite allows flexible re-use of automation cases and their Selenese functions, with customised versions of local pages for each [suite]. If all such suites can use same version of a local page, such a file can be in a common parent folder. This results in similar suites having the same folder structure and same names for local pages, which simplifies navigation.
2828

29-
[Suites][suite] that share [cases][case] from parent folder(s) should be at the same directory depth, so that they can access any local `.html` files in higher folders through same relative URLs (e.g. `../page.html`). Scripts open local forms/pages by e.g. <!-- TODO check/FIX--> <code>open | file://` SeLiteSettings.getTestSuiteFolder() `/form.html</code>
29+
[Suites][suite] that share [cases][case] from parent folder(s) should be at the same directory depth, so that they can access any local `.html` files in higher folders through same relative URLs (e.g. `../page.html`). Scripts open local forms/pages by e.g. `open | file://<> SeLiteSettings.getTestSuiteFolder() <>/form.html`.
3030

3131
We indent commands in tests. That requires [SeLite Clipboard And Indent](https://addons.mozilla.org/en-US/firefox/addon/selite-clipboard-and-indent/). Otherwise run `sed -r -e 's/<td>(&nbsp;)+/<td>/' test-case-location >temp_out; cp temp_out >test-case-location`.
3232

_includes/links

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
[IDE extension]: AboutDocumentation#ide-extension
1414
[Extension of Selenium IDE]: AboutDocumentation#extension-of-selenium-ide
1515
[set]: Settings#sets
16+
[API]: https://selite.github.io/API
1617

1718
<!-- Naming convention: variable names are in camelCase
1819
-->

_includes/toc.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,12 +110,12 @@ Following turns on/off Bootstrap menu classes. It allows selite.github.io/TableO
110110
<li class="divider"></li>
111111
<li><a href="TroubleShooting">TroubleShooting</a></li>
112112
<li><a href="ReportingIssues">ReportingIssues</a></li>
113+
<li><a href="PackagedScripts">PackagedScripts</a></li>
113114
<li><a href="WhySeleniumIDE">WhySeleniumIDE</a></li>
114115
<li class="divider"></li>
115116
<li class="dropdown-header">Internal:</li>
116117
<li><a href="DocumentationStandard">DocumentationStandard</a></li>
117118
<li><a href="DataObjects">DataObjects</a></li>
118119
<li><a href="SeleniumFlow">SeleniumFlow</a></li>
119-
<li><a href="PackagedScripts">PackagedScripts</a></li>
120120
</ul>
121121
</li>

0 commit comments

Comments
 (0)