Confirmed users
14,525
edits
(9 intermediate revisions by the same user not shown) | |||
Line 14: | Line 14: | ||
|- valign="top" | |- valign="top" | ||
| '''Status:''' | | '''Status:''' | ||
| | | '''on hold''' | ||
|- valign="top" | |- valign="top" | ||
| '''Repository Location:''' | | '''Repository Location:''' | ||
Line 38: | Line 38: | ||
== Refactoring == | == Refactoring == | ||
=== Phase I === | === Phase I === | ||
Goal | {| class="fullwidth-table" | ||
| Goal | |||
| Implement lowest hanging fruit, make all tests reflect the styleguide | |||
|- | |||
| {{bug|}} | |||
| Replace all constants with CONSTANTS | |||
* gDelay, 100 => DELAY | |||
* gTimeout, 5000 => TIMEOUT | |||
* sleep() parameter => SLEEP_TIMEOUT | |||
* unique timeouts => CONSTANT (ie. SEARCH_TIMEOUT) | |||
|- | |||
| {{bug|}} | |||
| Replace discrete, unchanging values with CONSTANTS | |||
|- | |||
| {{bug|}} | |||
| Migrate tests away from testGeneral | |||
|- | |||
| {{bug|}} | |||
| All test pages in LOCAL_TEST_PAGES array | |||
|- | |||
| {{bug|}} | |||
| Replace waitForEval() with waitFor() where possible | |||
|- | |||
| {{bug|}} | |||
| Replace DELAY/TIMEOUT with waitFor() where possible | |||
|- | |||
| {{bug|}} | |||
| License block formatting | |||
* "the Mozilla Foundation" | |||
* contributor list alignment | |||
|- | |||
| {{bug|}} | |||
| All error messages use format: | |||
* message + " - got " + condition1 + ", expected " + condition2 | |||
* ''message'' uses positive wording | |||
|- | |||
| {{bug|}} | |||
| Whitespace formatting | |||
* No trailing whitespace | |||
* 1 newline at end of file | |||
* 2-space indentation where appropriate | |||
* Wrap on 80-characters where appropriate | |||
|- | |||
| {{bug|}} | |||
| Replace sleep() with waitFor() where possible | |||
|- | |||
| {{bug|}} | |||
| Extract any ''new elementslib...'' from function parameter list | |||
|- | |||
| {{bug|}} | |||
| Replace all array iteration with Array.forEach() | |||
|- | |||
| {{bug|}} | |||
| Replace anonymous functions with named functions | |||
|- | |||
| {{bug|}} | |||
| Adopt consistent commenting style | |||
|- | |||
| {{bug|}} | |||
| All iterators as ''i'', not ''ii'' | |||
|- | |||
| {{bug|}} | |||
| Adopt consistent conditional cuddling | |||
|- | |||
| {{bug|}} | |||
| All included modules should use variable names starting with capital | |||
|- | |||
| {{bug|}} | |||
| All conditionals use !== or === | |||
|} | |||
''Note: The above comes from the agreed to refactoring [http://etherpad.mozilla.com:9000/mozmill-test-refactor guidelines]'' | |||
=== Phase II === | === Phase II === | ||
Line 46: | Line 117: | ||
Discussion [http://mozqa.ietherpad.com/refactor-discussion here] | Discussion [http://mozqa.ietherpad.com/refactor-discussion here] | ||
; | ; Generally Agreed | ||
* | * We should always use the triple operator to not experience strange behavior | ||
** | ** ===/!== instead of ==/!= | ||
* Variables for imported modules have to start with a capital letter | |||
** i.e. var Tabs = require(".../tabs") | |||
* Class names have to start with a capital letter | |||
* setupModule(module) and teardownModule(module) have to specify the module parameter | |||
* If variable name contains an acronym, capitalize the acronym | |||
* Error messages should use the following format: | |||
** Boolean: "<element> is <state>." | |||
** Value: "<element> is <state>: got 'value', expected 'value'" | |||
** Example: "Password notification is visible" | |||
** Example: "mozilla.org is loaded: got '<loaded_domain>', expected 'mozilla.org'" | |||
* sleep() should be avoided and only used when... | |||
** element is not immediately available | |||
** state is not immediately available | |||
** waitFor() fails to capture event | |||
* | |||
* | |||
* | |||
* | |||
* | |||
< | |||
" | |||
" | |||
< | |||
* | |||
* | |||
* | |||
* | |||
* | |||
* | |||
* | |||
; | ; Needs Discussion | ||
* TestFilesAPI for loading of test files | |||
* | ** We should have a module specific to loading of test files | ||
* | ** We should also check how we can make sure those locations are easily replacable with other servers (apache, ...) | ||
* | * Parameters should be named using aParam format | ||
* | ** shows that a variable inside a long function is a parameter and hasn't been declared locally | ||
* | * Constant scope - should they be global and local? | ||
* |