New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP Control Flow v2 #280
Merged
Merged
WIP Control Flow v2 #280
Changes from 143 commits
Commits
Show all changes
144 commits
Select commit
Hold shift + click to select a range
31c56ac
Tests and code (embedded in the test file) for control flow validation.
b4c7049
Fix for if/else leveling. Broke things into preprocess (leveling and …
46a2a69
WIP on cleaning up code into a more OO design.
95967b1
Refactored control flow preprocessing.
4af827d
Added do/while and do/repeatif support. Some additional cleanup as well.
9fc1515
WIP on linked list object creation.
3011873
Additional bits for linked list creation, and cleaned up the hard
2cc556c
Merge branch 'callstack' of github.com:SeleniumHQ/selenium-ide into c…
355e05e
Made it so #preprocess and #process return their respective collectio…
8b1b270
Renamed _processStack to stack. Also cleaned up #process to clone _pr…
7e342fa
Cleaned up CommandStackHandler to use better variable and method naming.
b9f0c8c
Moved setting the command and index on the CommandStackHandler into #…
f06031a
Renamed #confirm to #confirmControlFlowSyntax
378ea18
Moved away from the Command class hierarchy and towards a distilled s…
81ca69d
Renamed methods and variables in ControlFlowHandler to better denote …
099cf1c
Broke playback tree classes into individual files
2268a4b
Deleted previous attempt at control flow validation
b1a621a
Reordered commands within #mutation1
56315bf
Moved PlaybacTree.spec.js into a playback-tree directory to match the…
13ac6c1
Fixed import statement
d820ffd
Made it to so CommandStackHandler can loop through and preprocess the…
1e0042a
Reduced CommandStackHandler and PlaybackTree into just PlaybackTree. …
fa6810e
Moved command node processing over to a switch statement that leverag…
1f17a29
Added a dedicated test for checking that command nodes have the corre…
4c53829
Renamed #_processCommands to #_processCommandNodes
e646ffa
Created a playback directory and moved playback-tree.js there.
46030ef
Switched from strings to constants when referencing a command name.
bf2866d
Switched to testing with Command objects and updated the playback tre…
725f7a7
Renamed playback-tree.js to index.js and moved the CommandNode class …
9e56ada
Fixed do/repeatIf and while in the syntax tree
941caeb
Moved syntax validation into more succinct functions outside of Playb…
1ecbab8
Removed pre-emptive export
92de2a9
Reworked playback-tree into just functions and added coverage for som…
548fccf
Reordered functions to be alphabetical by object key
d611c31
Broke repeated procedures out into their own unique functions. Also e…
2c8dd81
Merge branch 'callstack' of github.com:SeleniumHQ/selenium-ide into c…
ca82fe6
Reduced syntax verification, leveling, and node connecting further. A…
37de4e0
Merge branch 'callstack' of github.com:SeleniumHQ/selenium-ide into c…
2b19664
Added commands to the CommandList along with their names, description…
389f9a8
Added no-op emitters for control flow commands to suffice test errors.
1fcaf02
Moved PlaybackTree to its own file.
8871df9
Dropped the 'ControlFlow' prefix from the command names and alphabeti…
306df64
Abstracted the command equality check into its own function
21ab5be
Changed syntax validation to throw SyntaxError
dba1bef
Made the leveling functions pure.
b84528c
Pulled the push down automata (a.k.a. the state array) into its own c…
2b7053d
Added #empty to state
aa270e8
Cleaned up the code around verifying else and else if syntax.
207c291
Broke syntax validaiton and command leveling into separate files and …
6a09008
Added correct file extension to test file and added another test case…
cda8742
Added correct file extension to test file and added another test case…
c5f962f
Wired up control flow syntax validation and command indentation. To h…
ad70d9b
Merge branch 'master' of github.com:SeleniumHQ/selenium-ide into cont…
2edeef5
Merge branch 'control-flow-v2' of github.com:SeleniumHQ/selenium-ide …
7766e36
Merge branch 'master' of github.com:SeleniumHQ/selenium-ide into cont…
9877023
Adjust linked list generation for control flow to skip over terminal …
c44d833
Cleaned up end, else, and do command node linking a bit further.
4870332
Merge branch 'master' of github.com:SeleniumHQ/selenium-ide into cont…
5a89c8d
Fixed malformed copyright header
29a54e6
Added test to check end skip recursion.
ff55c78
A rough first pass on getting playback wired up with playback-tree.
4b70d8b
Added execution for control flow commands to playback. Pulled the set…
005b1e7
Fixed linter warnings
972c3b5
Wired up eval for expressions. Made a helper command for evaluateCond…
d2e5af6
Rolled the isExtCommand function into the class method of the same na…
d6213c4
Moved isWindowMethodCommand into extCommand and updated where it's us…
da8c771
Merge branch 'master' of github.com:SeleniumHQ/selenium-ide into cont…
d7c4d3f
Fixed a bug introduced by commandLevels when deleting tests and test …
c78f561
Added a suite and tests for control flow commands.
04c632d
Added breaking on a potential infinite loop with optional override. A…
3d4df75
Made it so executing individual control flow commands throws a helpfu…
72c4297
Modified error copy
e39d4e6
Wired up errors from 1) hitting the max retry and 2) not providing a …
207d797
Fixed an edge case bug where an empty conditional branch (e.g., while…
141456c
Merge branch 'master' of github.com:SeleniumHQ/selenium-ide into cont…
26ee833
Renamed `elseIf` to `else if` in models/Command.js, added 'else if' t…
a46cedc
First pass on sandbox eval (Chrome only).
7d2b9d6
Inlined conditional.
a59c315
Fixed a bug that prevented `do` from being used as the first command …
5abde35
Added standard HTML tags
c32d0f7
Moved iframe loading to bottom of body.
ff22cc7
Added error reporting for sandbox eval on Firefox. Also added resetti…
c30dbfe
Merge branch 'master' of github.com:SeleniumHQ/selenium-ide into cont…
5f66294
Swapped copyright header
d0a73a5
Swapped the switch/case in `stringToBool` for a one-liner and swapped
41ad7c9
Made value explicit
d7e5cc5
Moved the eval return into its own variable
9e44774
Moved fetching the iframe into #eval and wrapped the `postMessage` in…
de7a9a7
Added a function to check if the open command is valid (e.g., name is…
138b430
Added conditional rendering of the sandbox so it doesn't happen on Fi…
942d2de
Removed hard-coded iframe declaration
7dd3de3
Updated `isLoop` to include `repeatIf`. Also updated `isControlFlow` …
b493b50
Added a function to increase `timesVisited` only if it is a loop and …
0f316fd
Refactored CommandNode
cb8903b
Added an `isTimes` lookup and updated `CommandNode#evaluate` with it.
2adad6c
Set playback state for successful control flow command execution
46b8148
Inlined conditional incrementing of `timesVisited` since it's only ne…
df0574a
Added a `return` on `reportError` when a control flow command isn't s…
7af5d1d
Created/moved test files into `playback-tree` directory to mirror wha…
f79682b
Added additional test coverage for CommandNode
e6861da
Refactored for testability, added test coverage, and made it so check…
ccb1007
Swapped hard-coded control flow command names for calls to `ControlFl…
73de6e4
Added characterization tests for when the sandbox resolves with a kno…
5609b03
Added a suite for all seed tests to make it a little easier to run th…
281df69
Changed the seed so it loads the 'Test suites' view with the first te…
f4001a8
Merge branch 'master' of github.com:SeleniumHQ/selenium-ide into cont…
a88b2e2
Added execute script tests to the seed set and made them load in focu…
28148a9
Updated `doSeleniumCommand`'s call to `execute` on the commandNode to…
32d31c1
Renamed `Sandbox#eval` to `Sandbox#sendMessage` to mirror the `extCom…
fa6ebc5
First pass on code emitting for control flow commands.
b6473ea
Merge branch 'master' of github.com:SeleniumHQ/selenium-ide into cont…
929f4b7
Defaulting seed.js to load the control flow if test for simplicity.
3890bac
Moved away from sanbox eval in favor of loading up bootstrap.html wit…
ce8a973
Removed console output from debugging
4ea0a77
Removed the `evalInContentWindow` parameter and commented out code fr…
77169c5
Merge branch 'master' of github.com:SeleniumHQ/selenium-ide into cont…
ac8de08
Fixed linter errors
2245931
Removed the sandbox
476fbc4
Removed dynamic appending of the sandbox iframe
42492ea
Added 'assert' command
ede1097
Fixed line wrap on new reference text to be consistent
2f8ca5d
Updated CommandNode to support soft assertions (e.g., 'verify' comman…
cd7b06b
Moved the call for `doType` out of `doSeleniumCommand` and into `Comm…
438d65a
Swapped `ControlFlowCommandNames` to use the Command key instead of name
a5c956e
Merge branch 'master' of github.com:SeleniumHQ/selenium-ide into cont…
7da80bd
Fixed the seed to use the correct command incantation (e.g., by key i…
ba30b42
Removed unnused import
ee61a37
Fix for a bug in `executeScript` and `executeAsyncScript` where the r…
fd461e9
Updated `doDelay` to reference the current command node to see if it'…
b0b92ba
Added plugin support to command nodes
9103185
Removed unnused import
7ce31ce
Merge branch 'master' of github.com:SeleniumHQ/selenium-ide into cont…
2e40b4d
Removed open commands from control flow tests. Removed unnecessary ex…
0f16bc9
Removed the check for a valid open and storing this information in Pl…
edcb1cd
Fixed the result return for the command node on plugin commands so it…
7413bf6
Moved away from a `PlaybackTree` class instance in favor of returning…
9b11659
Merge branch 'master' of github.com:SeleniumHQ/selenium-ide into cont…
dc57053
Merge branch 'master' of github.com:SeleniumHQ/selenium-ide into cont…
e2d4f16
Merge branch 'master' of github.com:SeleniumHQ/selenium-ide into cont…
8bae621
Merge branch 'master' of github.com:SeleniumHQ/selenium-ide into cont…
a3bae98
Pulled the call to set the `currentExecutingCommandNode` up from `doS…
1b5778a
Made the if seed test the default one loaded in the seed
fcdfedb
Removed reference to htmlutils.js and updated the sha digest in the m…
df3eb14
Made scoped explicit in `evaluateConditional`. Removed an unnecessary…
File filter
Filter by extension
Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not scoped?
In WebDriver it'll be scoped.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can make it explicit, but isn't it already scoped if it's
undefined
?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Forgot it has a default value
true
, make it true anyway for clarification that it is required.I put the default one, so that if it gets called from something internal that I'm not aware of, that it'll be scoped by default.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay.