Giter Club home page Giter Club logo

screening's People

Contributors

eliseosoto avatar stuk avatar toji avatar zacharyc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

screening's Issues

Control Room - default scripts fail with Agent is not defined ARGUMENTS: agents

IDART bug 3642


Default scripts fail with 'agent is not defined' error.

0.1.5
Master Branch GIT (Today's fetch)

Steps to Reproduce

  1. Launch Control Room
  2. Launch New Agent
  3. Launch Web Driver agent
  4. Select an agent (iframe in this example)
  5. Select a script (Calculator Hotness in this example)
  6. Select Run
  7. Select other agent (web driver) and another script (wdyl-search-test)

Results:
Test EXCEPTION - JSON error - agent is not defined - ARGUMENTS: agent (JSON's attached).

Expected Results:
Test to pass or information on how to get the tests to pass.

Screening - File-upload (drag & drop via Finder GUI ) permits drop of file-icon into wrong panel on Control-Room

IDART bug # 3541


File-upload (drag & drop via Finder GUI ) permits drop of file-icon into wrong panel on Control-Room.

If a ( script) file is selected on the platform, and dropped into the file-list of Control-Room in the files list pane, then the C-R browser (Chrome) takes that script file as a text file to render in browser, and over-writes the Control-Room.

Environment set up.
Nodejs : Mac-OS-X,
Control-Room: Mac-OS-X +Chrome
Agent-Type: --not required here --
Agent-platform: Mac-OS-X,
Agent-Browser: Chrome
DataBase Platform: Mac-OS-X.

Steps to Reproduce

  1. Control-Room browser page and the C-R platform (machine) are up and available
  2. Create a new js script file Foo.js in the Control-Room platform in some private directory (content: "// comments " is ok).
  3. Use the file-viewer utility of the platform, and grab the file within the GUI and
    drop the file-icon into one of the files of the list-of-files shown in the C-R left-side-panel [ NOT in the area marked "Upload.." ].

Actual Results

  1. No warning or errors shown, and the file dropped is shown in the page that was the Control-Room GUI.

Expected Results

  1. A warning indicating that this is not a desirable/ permitted operation
    OR,
    Allowing this entire panel area to be the drop-file-icon target area, thus permitting the "upload" anywhere in the left panel.

Performance issue on loading app and switching from Preferences screen

It takes a while to load Screening for the first time. It also takes a while to switch from Preferences screen (by pressing Home button) to the main screen - in this scenario the last selected script shows no details - I have to refresh page which is annoying. Anything we can do about it?

Synchronization issue with webdriver - auto sync doesn't wait for page load

IDART bug 3629


Browser: 14.0.835.202.

Set preferences:
Global Timeout: 200
Sync mode: auto.

Execute the following ninja script on webdriver agent:

// ==== Start Recorded Script, Mon Oct 24 2011 10:46:09 GMT-0700 (PDT)====

var agent = new Agent();

agent.gotoUrl("/webapps/js-authoringtool/MainApp/index.html");

agent.setWindowSize(1154, 858);

agent.element("//[@id='preloader']").mouseMoves([{"x":674,"y":10,"duration":0},{"x":663,"y":120,"duration":30},{"x":700,"y":216,"duration":248},{"x":685,"y":216,"duration":226}]);
agent.element("//
[@id='iframeContainer']").setScrollTo(700,260);
agent.element("//[@id='preloader']").mouseMoves([{"x":685,"y":216,"duration":0},{"x":530,"duration":2197}]);
agent.element("//
[@id='topMenu']").mouseMoves([{"x":531,"y":2,"duration":0},{"x":526,"y":16,"duration":14}]);
agent.element("//[@id='topSplitter']").mousemove({"clientX":522,"clientY":34});
agent.element("//
[@id='toolsProperties']").mousemove({"clientX":517,"clientY":54});
agent.element("//[@id='openDocuments']").mouseMoves([{"x":506,"y":98,"duration":0},{"x":502,"y":113,"duration":9}]);
agent.element("//
[@id='stageCanvas']").mouseMoves([{"x":496,"y":136,"duration":0},{"x":478,"y":208,"duration":83},{"x":456,"y":230,"duration":50},{"x":210,"y":211,"duration":217},{"x":154,"y":230,"duration":33},{"x":119,"y":252,"duration":17},{"x":81,"y":296,"duration":1118}]);
agent.element("//[@id='toolsList-toolscontainer-toolbutton-9']/DIV").mousemove({"clientX":35,"clientY":317});
agent.element("//
[@id='stageCanvas']").mouseMoves([{"x":231,"y":453,"duration":0},{"x":345,"y":400,"duration":15},{"x":594,"y":310,"duration":17},{"x":809,"y":268,"duration":17}]);
agent.element("//[@id='cp_spectrum']/CANVAS").mouseMoves([{"x":926,"y":256,"duration":0},{"x":926,"y":256,"duration":616}]);
agent.element("//
[@id='rulerLeft']").mousemove({"clientX":64,"clientY":246});
agent.element("//[@id='toolsList-toolscontainer']").mouseMoves([{"x":55,"y":254,"duration":0},{"x":54,"y":257,"duration":117}]);
agent.element("//
[@id='toolsList-toolscontainer-toolbutton-6']/DIV").mousemove({"clientX":51,"clientY":262});
agent.element("//[@id='toolsList-toolscontainer-toolbutton-7']/DIV")
.mouseMoves([{"x":45,"y":269,"duration":0},{"x":41,"y":277,"duration":53}])
.click({"clientX":41,"which":1,"clientY":277,"detail":1})
.mouseMoves([{"x":40,"y":277,"duration":0},{"x":49,"y":269,"duration":316}]);
/agent.element("//[@id='toolsList-toolscontainer']").mousemove({"clientX":57,"clientY":261});
agent.element("//
[@id='rulerLeft']").mouseMoves([{"x":65,"y":257,"duration":0},{"x":71,"y":251,"duration":33}]);
agent.element("//[@id='stageCanvas']").mouseMoves([{"x":80,"y":244,"duration":0},{"x":109,"y":214,"duration":66},{"x":163,"y":134,"duration":150}]);
agent.element("//
[@id='rulerTop']").mousemove({"clientX":169,"clientY":124});
agent.element("//[@id='openDocuments']").mouseMoves([{"x":175,"y":111,"duration":0},{"x":181,"y":95,"duration":183}]);
agent.element("//
[@id='topPanel']").mousemove({"clientX":189,"clientY":83});
agent.element("//[@id='toolsProperties']").mouseMoves([{"x":194,"y":75,"duration":0},{"x":199,"y":67,"duration":16}]);
agent.element("//
[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[1]").mousemove({"clientX":203,"clientY":58});
agent.element("//[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[2]").mousemove({"clientX":207,"clientY":51});
agent.element("//
[@id='toolsProperties-shapeProperties-strokeControl']").mousemove({"clientX":208,"clientY":47});
agent.element("//[@id='topSplitter']").mouseMoves([{"x":210,"y":41,"duration":0},{"x":204,"y":43,"duration":183}]);
agent.element("//
[@id='toolsProperties']").mousemove({"clientX":203,"clientY":45});
/
agent.element("//
[@id='toolsProperties-shapeProperties-strokeControl']").click();

agent.element("//*[@id='toolsProperties-shapeProperties-strokeControl']/INPUT[1]").focus();

var a = agent.element("//*[@id='toolsProperties-shapeProperties-strokeControl']/INPUT[1]").getText();

agent.element("//*[@id='toolsProperties-shapeProperties-strokeControl']/INPUT[1]").setAttribute('value',"");

//agent.element("//[@id='toolsProperties-shapeProperties-strokeControl']/INPUT[1]").keypress(13);
agent.element("//
[@id='toolsProperties-shapeProperties-strokeControl']/INPUT[1]").keypress({"keyIdentifier":"U+0031","which":49});

//agent.element("//*[@id='toolsProperties-shapeProperties-strokeControl']/INPUT[1]").keyPress({"keyIdentifier":"U+0008","which":8});

agent.element("//*[@id='toolsProperties-shapeProperties-strokeControl']/INPUT[1]").keyPresses("ABC");

agent.element("//*[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[1]").keyPress("2");

//var a = agent.element("//*[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[1]").getAttribute('innerHTML');
console.log(a);

agent.element("//[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[1]").setAttribute('innerText',"23");
agent.element("//
[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[1]").dispatchEvent('keydown','3');
agent.element("//[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[1]").dispatchEvent('keypress','3');
agent.element("//
[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[1]").dispatchEvent('keyup','3');

agent.element("//*[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[1]").keyPresses("ABC");

a = agent.element("//*[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[1]").getAttribute('innerHTML');
console.log(a);

agent.wait(8000);

/agent.element("//[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[1]")

.mouseMoves([{"x":201,"y":49,"duration":0},{"x":205,"y":63,"duration":489}])
.mousedown({"clientX":205,"which":1,"clientY":63,"detail":1});

agent.wait(279);

agent.element("//[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[1]").mousemove({"clientX":206,"which":1,"clientY":63});
agent.element("//
[@id='toolsProperties']").mouseMoves([{"x":207,"y":63,"duration":0},{"x":212,"y":63,"duration":251}]);
agent.element("//[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[2]")
.mouseMoves([{"x":213,"y":62,"duration":0},{"x":221,"y":60,"duration":1413}])
.mouseup({"clientX":221,"which":1,"clientY":60,"detail":1})
.mouseMoves([{"x":221,"y":60,"duration":0},{"x":220,"y":60,"duration":315}]);
agent.element("//
[@id='toolsProperties']").mousemove({"clientX":220,"clientY":67});
agent.element("//[@id='topPanel']").mousemove({"clientX":222,"clientY":77});
agent.element("//
[@id='openDocuments']").mouseMoves([{"x":226,"y":93,"duration":0},{"x":230,"y":107,"duration":17}]);
agent.element("//[@id='rulerTop']").mousemove({"clientX":237,"clientY":122});
agent.element("//
[@id='stageCanvas']")
.mouseMoves([{"x":242,"y":138,"duration":0},{"x":261,"y":213,"duration":167},{"x":254,"y":210,"duration":199}])
.mousedown({"clientX":254,"which":1,"clientY":210,"detail":1})
.mouseMoves([{"x":257,"y":209,"duration":0},{"x":394,"y":217,"duration":199},{"x":437,"y":347,"duration":317}])
.mouseup({"clientX":437,"which":1,"clientY":347,"detail":1});
agent.wait(322);

agent.element("//[@id='stageCanvas']")
.click({"clientX":437,"which":1,"clientY":347,"detail":1})
.mouseMoves([{"x":436,"y":347,"duration":0},{"x":248,"y":308,"duration":85},{"x":157,"y":266,"duration":33},{"x":95,"y":226,"duration":17}]);
agent.element("//
[@id='toolsList-toolscontainer-toolbutton-3']/DIV").mousemove({"clientX":43,"clientY":182});
agent.wait(920);

agent.element("//[@id='editPencil']").mousemove({"clientX":885,"clientY":60});
agent.element("//
[@id='toolsProperties']").mousemove({"clientX":943,"clientY":73});
agent.element("//*[@id='openDocuments']").mouseMoves([{"x":746,"y":99,"duration":0},{"x":746,"y":99,"duration":5}]);

// ==== End Recorded Script ====
*/

Execution fails with exception:

Exception 41 / 7
Element must be displayed to click
3868 ms

Automatic runs

I haven't looked into this too much, and the REST API might be appropriate, but how would we run tests in screening automatically, on a post-commit git hook for example?

[I.M.] Currently our UI allows execution of one test case at a time, which is bad. We should be able to execute scripts in batch mode. Can you log a feature request for us? Currently you can execute multiple tests trough REST API.

Control-Room GUI: viewing file in script editor: entering search string characters results in graphical artifacts - ghost scroll-bars

IDART bug 3626


GUI flashes on each key entered in the search-text window
Flashes show a vertical white scroll bar in files-list, blue horizontal scroll-bar in editor top panel.

Chrome browser, on Mac.OSX environment.

Actual environment:

Screening v0.1.5+ , 10/24.

"Nodejs : Mac-OS-X,
Control-Room: Mac-OS-X +Chrome
DataBase Platform: Mac-OS-X.
Agent-Type: any
Agent-platform: - not used
Agent-Browser: - not used

Steps To Recreate

  1. Bring up GUI of control-room with system running, in files-list panel set "name" as search criteria
  2. From file list, select one file to view
  3. View the file, then move cursor/mouse to the files-list panel, search-text window
  4. Delete All characters in the text-window ( until the X icon for "delete string"
    has disappeared from the right-hand-side of text-window).
  5. Now enter a letter, "T" for the first letter of search string. Watch the display change / contents change
  6. Continue entering single letters, to the search string... noting the graphics and other changes

Actual Results

  1. Entry of FIRST char causes a change in the files-list-ordering... back to default "alphabetical" (?).
  2. Each letter entered results in graphics artifacts as described above.

Expected Results

  1. No shift-in-files-list position (?)
  2. No graphical artifacts.

Playback of Ninja App does not show dragged Montage Components from Component Panel on the stage.

IDART bug 3635


Environment set up.
Nodejs : Mac-OS-X,
Agent-Type: iFrame
Agent-platform: Mac-OS-X
Agent-Browser: Chrome 15.0.874.106

Screening v0.1.5

Steps to reproduce

  1. Create a new iFrame agent.
  2. On recording the gotoUrl is "/webapps/js-authoringtool/MainApp/index.html".
  3. Drag Montage Components such as image container, slider, toggle button from Component Panel to stage.
  4. Stop recording and playback the script.

Actual Result

Playback is not showing any of the dragged montage components on stage.

Expected Result

Playback should show all dragged montage components on stage.

Preferences screen - Home button is missing

Go to preferences screen. There used to be a button "Home" which would bring users back to control room. We have to either:
a) out the button back
b) open Preferences screen in a new tab (just like results screen)

REST API: GET request, on scripts using bad "script-Id" which was a test-result-Id, results EXIT of node server ; mongodb returned " empty record" and continued.

IDART bug # 3618


v0.1.5,
All-Mac-OSX environment, browser=Chrome.

A test was run, and the test-result-Id was requested, with the keyword accidentally indicating 'scripts' instead of test_results.

This resulted in mongodb returning apparently an empty record;
server fails to recover ( expecting a full test-result record?).

Steps to Reproduce

  1. Set up Screening server on Mac-OSX; v015 screening.
    Use the Control-Room GUI to find All-results, and one test-result-Id that can be viewed
  2. Issue the REST-API request , using a VALID test-result-Id, via incorrect curl command:
    curl -v --noproxy localhost -X GET 'http://localhost:8081/screening/api/v1/scripts/4ea1b3678dfe82f931000005?api_key=5150'

(Correct query would use 'test_results' , not 'scripts' ) .

Actual Results indicated:

  1. curl command Responses:
  • About to connect() to localhost port 8081 (#0)
  • Trying 127.0.0.1... connected
  • Connected to localhost (127.0.0.1) port 8081 (#0)

    GET /screening/api/v1/scripts/4ea1b3678dfe82f931000005?api_key=5150 HTTP/1.1
    User-Agent: curl/7.19.7 (universal-apple-darwin10.0) libcurl/7.19.7 OpenSSL/0.9.8r zlib/1.2.3
    Host: localhost:8081
    Accept: /

  • Empty reply from server
  • Connection #0 to host localhost left intact
    curl: (52) Empty reply from server
  • Closing connection #0
    null-c8bcc89cfb91:Rest-apis rwjm37$
  1. Output At the node-server console/window:

GET Scripts/:id 4ea1b3678dfe82f931000005
Couldn't connect to MongoDB, plese check /docs/MongoDb.md for info on how to setup the MongoDB server undefined
null-c8bcc89cfb91:screening rwjm37$
< node server > process has died and needs to be re-launched.

Fix Component Test.js

Run Component Test. You'll get an exception:

//form/div[2]/input[contains(@Class, 'montage-textfield')]: The element could not be found

Can't add driver when running on different port

When I run screening on a non-default port through node server --port=8082 adding a driver fails. I think it might be to do with websockets/socket.io and the access origin policy as there was an error in the console to this effect, although I can't reproduce it.

click() method is not working on iFrame agent

IDART bug # 3583


Inv dev branch execute the following script (on iFrame agent):

var agent = new Agent();
agent.gotoUrl("/screening/control-room/ui-sample.html");

var checkbox = agent.element("#testCheckbox");
assertFalse(checkbox.isChecked());
checkbox.click();
assertTrue(checkbox.isChecked());

Checkbox is not checked (the same script runs successfully on webdriver)

Can't record script

When I try and record with an attached Chrome driver nothing happens. I click "Stop recording" and the following is placed in the editor:

{"error":"Cannot call method 'emit' of undefined","stack":"TypeError: Cannot call method 'emit' of undefined\n    at Function.<anonymous> (/Users/xxxxxx/Documents/projects/screening/server/lib/webdriver-agent.js:158:20)\n    at /Users/xxxxxx/Documents/projects/screening/server/rest-api/agents.js:162:28\n    at callbacks (/Users/xxxxxx/Documents/projects/screening/server/node_modules/express/lib/router/index.js:272:11)\n    at param (/Users/xxxxxx/Documents/projects/screening/server/node_modules/express/lib/router/index.js:246:11)\n    at param (/Users/xxxxxx/Documents/projects/screening/server/node_modules/express/lib/router/index.js:243:11)\n    at pass (/Users/xxxxxx/Documents/projects/screening/server/node_modules/express/lib/router/index.js:253:5)\n    at Router._dispatch (/Users/xxxxxx/Documents/projects/screening/server/node_modules/express/lib/router/index.js:280:4)\n    at Object.handle (/Users/xxxxxx/Documents/projects/screening/server/node_modules/express/lib/router/index.js:45:10)\n    at next (/Users/xxxxxx/Documents/projects/screening/server/node_modules/express/node_modules/connect/lib/http.js:203:15)\n    at Object.handle (/Users/xxxxxx/Documents/projects/screening/server/node_modules/express/lib/http.js:83:5)"}

If app can't be loaded node server crashed

We should timeout after a given timeout value and give an exception in the results if an app is not loaded (or if an element is not found), but not crash node server!

/Users/ntvd76/workspace/screening/server/lib/webdriver/util.js:232
var retBody = JSON.parse(body);
^
ReferenceError: body is not defined
at IncomingMessage. (/Users/ntvd76/workspace/screening/server/lib/webdriver/util.js:232:17)
at IncomingMessage.emit (events.js:81:20)
at HTTPParser.onMessageComplete (http.js:133:23)
at Socket.ondata (http.js:1231:22)
at Socket._onReadable (net.js:683:27)
at IOWatcher.onReadable as callback

Record + Pause: Agent shows DOM inspector, which can't be removed; continued + Resume recording shows further errors in UI with big blocks of color, no response to input

IDART bug # 3570


The results seen in the failed Record+Pause+Resume operation on the URL are in addition to:
suspected DIV element counts going off during resume-recording - elements not on the page are attempted to be addressed in the recording.
[ Playback will show this last result].

TC#045 - on iFrame, not Webdriver

Fails with DOM inspector turned On after pause & resume. Blocks of color on url, no response to user mouse movements, kboard.

User has to click a few times on a script to get it selected

When script run is finished user gets a pop-up message with results. When user switches back to the control room after viewing test results selection of a new script is problematic. I have to click 3-4 times on a script to get it selected.

Update existing scripts and create new scripts

We need to update existing scripts in sample_tests directory and create new scripts for:
uuid-generator app (Irina)
todo-mvc app (Irina)
temp-converter (Irina)
sink app (Brandon)
photofx app (Zack)
mixed-list app (Eliseo)
app-template app (Eliseo)
calculator (Irina)

Send result summary via email

IDART bug 3632


Screening:

Currently playback of our script display results in html format. Can we get those results via email?
This will help us to send our script result across the team.

THI: WebDriver: mouseClick() api does not with chrome for web driver

IDART bug # 3580


WebDriver: mouseClick() api does not with chrome for web driver

script path : http://10.72.32.11/screening/api/v1/scripts/defect.js

gets an exception: Unable to locate element
var x = agent.element("//*[@id='monthdiv#7']");
x.mouseClick();

Results seen for webdriver

START Start test run /
Starting test run at 2011-10-07T22:10:34.797Z ms

PASS assertEqual 14 / 1
Actual value: "Calendar"
Expected value: "Calendar"
Message: Verification of the title
570 ms

EXCEPTION Exception 18 / 15
Unable to locate element
596 ms
END End test 46 /
End test run at 2011-10-07T22:10:35.723Z
926 ms

Works for Iframe Results of the script

START Start test run /
Starting test run at 2011-10-07T22:09:17.211Z
ms
PASS assertEqual 14 / 1
Actual value: "Calendar"
Expected value: "Calendar"
Message: Verification of the title
1230 ms
PASS assertContains 25 / 2
Actual value: "August 2011"
Expected value: "August"
Message: Verification of the month title after clicking on the month
4735 ms
END End test 46 /
End test run at 2011-10-07T22:09:22.950Z
5739 ms

ChromeDriver Version 18.0.1022.0 is not working

ChromeDriver Version 18.0.1022.0 is not working and throwing "NSAutoreleaseNoPool()- autoreleased with no pool in place" error.

LOG:

Started ChromeDriver
port=9515
version=18.0.1022.0
log=/Users/knft38/chromedriver.log

2012-01-31 16:48:08.603 chromedriver 2[14426:1203] *** __NSAutoreleaseNoPool(): Object 0x400330 of class NSPathStore2 autoreleased with no pool in place - just leaking
2012-01-31 16:48:08.607 chromedriver 2[14426:1203] *** __NSAutoreleaseNoPool(): Object 0x403770 of class NSPathStore2 autoreleased with no pool in place - just leaking
2012-01-31 16:48:08.607 chromedriver 2[14426:1203] *** __NSAutoreleaseNoPool(): Object 0x4004c0 of class NSConcreteData autoreleased with no pool in place - just leaking
2012-01-31 16:48:08.607 chromedriver 2[14426:1203] *** __NSAutoreleaseNoPool(): Object 0xa01794d8 of class NSCFString autoreleased with no pool in place - just leaking
2012-01-31 16:48:08.608 chromedriver 2[14426:1203] *** __NSAutoreleaseNoPool(): Object 0x400bb0 of class NSBundle autoreleased with no pool in place - just leaking
2012-01-31 16:48:38.604 chromedriver 2[14426:1403] *** __NSAutoreleaseNoPool(): Object 0x117020 of class NSConcreteData autoreleased with no pool in place - just leaking
2012-01-31 16:48:38.605 chromedriver 2[14426:1403] *** __NSAutoreleaseNoPool(): Object 0xa01794d8 of class NSCFString autoreleased with no pool in place - just leaking
2012-01-31 16:48:38.605 chromedriver 2[14426:1403] *** __NSAutoreleaseNoPool(): Object 0x400bb0 of class NSBundle autoreleased with no pool in place - just leaking
2012-01-31 16:49:08.603 chromedriver 2[14426:1503] *** __NSAutoreleaseNoPool(): Object 0x4005d0 of class NSConcreteData autoreleased with no pool in place - just leaking
2012-01-31 16:49:08.604 chromedriver 2[14426:1503] *** __NSAutoreleaseNoPool(): Object 0xa01794d8 of class NSCFString autoreleased with no pool in place - just leaking
2012-01-31 16:49:08.605 chromedriver 2[14426:1503] *** __NSAutoreleaseNoPool(): Object 0x400bb0 of class NSBundle autoreleased with no pool in place - just leaking
2012-01-31 16:49:38.603 chromedriver 2[14426:1303] *** __NSAutoreleaseNoPool(): Object 0x403850 of class NSConcreteData autoreleased with no pool in place - just leaking
2012-01-31 16:49:38.604 chromedriver 2[14426:1303] *** __NSAutoreleaseNoPool(): Object 0xa01794d8 of class NSCFString autoreleased with no pool in place - just leaking
2012-01-31 16:49:38.604 chromedriver 2[14426:1303] *** __NSAutoreleaseNoPool(): Object 0x400bb0 of class NSBundle autoreleased with no pool in place - just leaking

Key.Backspace is not working

Try to execute:

// ==== Start Recorded Script, Wed Feb 15 2012 12:46:37 GMT-0800 (PST)====

var agent = new Agent();

agent.gotoUrl("/screening/samples/sample.html");

agent.setWindowSize(927, 988);

agent.mouseMove([{"x":423,"y":128,"duration":0},{"x":423,"y":118,"duration":222}]);
agent.element("//*[@id='textField']")
.click(Mouse.LEFT,85,13)
.sendKeys("test");
agent.mouseMove([{"x":426,"y":119,"duration":0},{"x":555,"y":236,"duration":84},{"x":547,"y":202,"duration":233},{"x":395,"y":208,"duration":384},{"x":241,"y":226,"duration":133},{"x":319,"y":241,"duration":167},{"x":332,"y":237,"duration":16},{"x":361,"y":206,"duration":34},{"x":369,"y":182,"duration":33},{"x":363,"y":161,"duration":34},{"x":347,"y":151,"duration":33},{"x":325,"y":151,"duration":150},{"x":320,"y":143,"duration":100},{"x":310,"y":147,"duration":300}]);
agent.mouseDown(310,147);
agent.mouseMove([{"x":313,"y":147,"duration":0},{"x":385,"y":148,"duration":84},{"x":441,"y":139,"duration":83}]);
agent.mouseUp(441,139);
agent.mouseMove([{"x":443,"y":140,"duration":0},{"x":523,"y":193,"duration":150},{"x":634,"y":240,"duration":30},{"x":772,"y":261,"duration":49},{"x":869,"y":261,"duration":34},{"x":914,"y":253,"duration":17}]);

// ==== End Recorded Script ====

agent.wait(2000);

// ==== Start Recorded Script, Wed Feb 15 2012 12:46:52 GMT-0800 (PST)====

var agent = new Agent();

agent.mouseMove([{"x":393,"y":110,"duration":0},{"x":460,"y":148,"duration":251}]);
agent.element("//*[@id='textField']")
.sendKeys(Key.BACKSPACE)
.sendKeys(Key.BACKSPACE)
.sendKeys(Key.BACKSPACE);
agent.mouseMove([{"x":469,"y":152,"duration":0},{"x":486,"y":142,"duration":66},{"x":568,"y":141,"duration":50},{"x":858,"y":153,"duration":67}]);

// ==== End Recorded Script ====

assertEqual("t", agent.element("//*[@id='textField']").getText());

More regressions in script execution - sendKeys

Eliseo,

We need to do more cleanups at assure our scripts continue to run. Now I see this exception -
Exception 27 / 9
Failed to parse command data: Line: 1, column: 14, Syntax error.
Data: {"value":["๎€ƒ"

in line: celsius.sendKeys(Key.BACKSPACE);

Please fix

Regression in script.require

Eliseo,

We had this issue when we moved to the DB, and you fixed it a while ago. Now I'm seeing the same symptoms: execute test-script, it fails with exception: The required script '_test-required-script' does not exist.

_test-required-script is in the DB. Please take a look

jasmine tests in rest-api-spec.js fails because port number 8081 is hardcoded inside public/agent/lib/iframe-agent.js , so will not work when screening server is on port 8082

IDART bug # 3585


Jasmine tests which uses phantomjs in rest-api-spec.js fails.
To execute rest-api-spec.js , screening server is set up at port 8082 on the local machine.
Phantomjs is used to create an iframe agent which is supposed to connect to screening server at port number 8082.
But in the file public/agent/lib/iframe-agent.js, port number 8081 is hardcoded. Because of this, the iframe agent tries to connect to screening server at port number 8081 which doesnt exist. But its supposed to connect to screening server at port 8082.

Layout borked in Firefox due to missing -moz- flexbox prefixes

There are a number of layout issues in Firefox due to only using -webkit- prefixes ::sad panda::

Iโ€™ve not spent a huge time looking at it, but I got it mostly working by adding -moz- prefix as well for all the box properties.

A number of gradients and box-shadows also have missing -moz- (and other) prefixes.

There are still issues I've not had the chance to look at properly when fixing these issues. They may or may not be easy to fix:

  • Toolbars don't stretch to 100% of the width of the page
  • The second toolbar (name and tags, and the name and search fields) break onto two lines. This looks to be because they get display: block set in the style sheet. Removing that more or less fixes the issue. I'm not sure why but the display: block doesn't get used by WebKit (doesn't show in the rule in Web Inspector), although it is in the original file downloaded (which you can see in the resource inspector).

Fix those and you'e 99% of the way to making the layout to work in Firefox.

Execution of script through selenium remote webdriver crashes node server

IDART bug # 3578


  1. Download Selenium Server (v 2.8.0) (from http://seleniumhq.org/download/)
  2. Start selenium server (java -jar ./selenium-server-standalone-2.8.0.jar)
  3. In screening control room add remote webdriver as an agent by providing this URL: http://127.0.0.1:4444/wd/hub
    You'll see the agent is added successfully
  4. Execute google-search-test.js on this agent - node server crashes:

SyntaxError: Unexpected token ILLEGAL
at Object.parse (native)
at [object Object].callback (/Users/ntvd76/workspace/screening/server/lib/webdriver/util.js:185:36)
at [object Object]. (/Users/ntvd76/workspace/screening/server/node_modules/request/main.js:294:21)
at [object Object].emit (events.js:64:17)
at IncomingMessage. (/Users/ntvd76/workspace/screening/server/node_modules/request/main.js:281:54)
at IncomingMessage.emit (events.js:81:20)
at HTTPParser.onMessageComplete (http.js:133:23)
at Socket.ondata (http.js:1231:22)
at Socket._onReadable (net.js:683:27)
at IOWatcher.onReadable as callback

Control-Room: Reload of page has unexpected behavior in main script-editor-window - resets to specific (last ?) file in list.

IDART bug # 3565


A user will "re-load" the Control-Room page to determine the exact agents connected to the Control Room,
and this will erase all work done on the script in the edit-script panel,
in the case of the "Reload" operation being launched via right-mouse-click when user was @ edit-panel .

Mac-OS-X for node, server, C-R platform; C-R browser is Chrome.
Currently (v 0.1.4) screening will re-set to the file "wdyl-search-test" (.js) on a re-load requested as above.

This design problem is complicated .. depends on how the reload originated, etc.

Steps to Reproduce

  1. On the C-R Platform, go to Control-Room page in browser, with an old script file XYZ.js
    in script editor panel.
  2. Edit, by adding the following few lines in the script file:

// comment 1
// comment 2
// We are done.

DO NOT SAVE the edits.
3. With mouse on the edit-panel or the edit-header-panel, click the mouse-right-button fully,
the menu with "Reload" option should come up.
(Otherwise, click the left-mouse-button completely and retry the right-button click again.)

  1. Select the "Reload" option in the menu with a click of mouse. Note the file shown after reload.
  2. CHeck the contents of file XYZ used above.

Actual Results

  1. Menu appears with "Reload" option present.
  2. Control-Room GUI is reset, with the file "wdyl-search-test" shown in editor, and no warnings of edits lost.
  3. No edits saved on file XYZ.

Expected Results ( Normal Editor behavior)

  1. Either a warning dialog box, or, commit the edits and continue to re-load..with the SAME file XYZ shown.
  2. Results in file XYZ as in user's response to dialog-box query.

Control-Room GUI: using script editor with un-saved updates: moving to Preferences screen is not update-safe ; unsaved file updates are lost , no warning.

IDART bug 3628


While using the script file editor, unsaved updates in editor are not triggering a warning when
user moves over to the Preferences page.
On return to the main editor page, the file editor updates are lost.

Chrome browser, on Mac.OSX environment.

Actual environment:

Screening v0.1.5+ , 10/24.

"Nodejs : Mac-OS-X,
Control-Room: Mac-OS-X +Chrome
DataBase Platform: Mac-OS-X.
Agent-Type: not used
Agent-platform: - not used
Agent-Browser: - not used

Steps To Recreate

  1. Bring up GUI of control-room with system running
  2. From file list, select one file to view, make some edits at top lines of file,
    DO NOT press Save.
  3. Move cursor/mouse to the "*Preferences" button, press it to enter preferences screen.
  4. Preferences screen.... view and return to prior page with Browser-BACK-button.
  5. GUI shows control-room with File-editor view as before..

Actual Results

  1. No warning or preventive action...
  2. View shows lost updates on the file.

Expected Results

3: Warning / disallowed action / autosave (dialog box) when EXITING the file-editor with updates

iFrame agent - issues with special characters (record and playback)

IDART bug # 3623


There are 2 issues here - on record and playback side, but I'm logging it as one bug.

Issue #1 - on recording part - we record record only "keyup" and "keydown" for special characters (not keypress). See the script below - "123" was recorded properly, but 3 "delete" keys are missing "keypress" event:

// ==== Start Recorded Script, Mon Oct 24 2011 15:52:21 GMT-0700 (PDT)====

var agent = new Agent();

agent.gotoUrl("/screening/sample.html");

agent.setWindowSize(1154, 858);

agent.element("/HTML").mouseMoves([{"duration":0},{"x":188,"y":1,"duration":2844}]);
agent.element("/HTML/BODY/H1").mousemove({"clientX":223,"clientY":22});
agent.element("/HTML/BODY").mouseMoves([{"x":277,"y":59,"duration":0},{"x":297,"y":73,"duration":16}]);
agent.element("/HTML/BODY/FORM").mousemove({"clientX":329,"clientY":97});
agent.element("/HTML/BODY/FORM/DIV[1]/LABEL").mousemove({"clientX":365,"clientY":117});
agent.element("/HTML/BODY/FORM/DIV[1]").mousemove({"clientX":399,"clientY":129});
agent.element("//[@id='slider']").mouseMoves([{"x":427,"y":136,"duration":0},{"x":486,"y":136,"duration":83}]);
agent.element("/HTML/BODY/FORM/DIV[1]").mousemove({"clientX":488,"clientY":132});
agent.element("//
[@id='textField']")
.mouseMoves([{"x":489,"y":130,"duration":0},{"x":494,"y":108,"duration":216}])
.click({"clientX":494,"which":1,"clientY":108,"detail":1})
.mouseMoves([{"x":494,"y":109,"duration":0},{"x":495,"y":112,"duration":150}])
.keydown({"keyIdentifier":"U+0031","which":97})
.keypress({"keyIdentifier":"U+0031","which":49})
.keyup({"keyIdentifier":"U+0031","which":97});
agent.wait(751);

agent.element("//*[@id='textField']")
.keydown({"keyIdentifier":"U+0032","which":98})
.keypress({"keyIdentifier":"U+0032","which":50})
.keyup({"keyIdentifier":"U+0032","which":98});
agent.wait(334);

agent.element("//*[@id='textField']")
.keydown({"keyIdentifier":"U+0033","which":99})
.keypress({"keyIdentifier":"U+0033","which":51})
.keyup({"keyIdentifier":"U+0033","which":99});
agent.wait(2776);

agent.element("//*[@id='textField']")
.keydown({"keyIdentifier":"U+0008","which":8})
.keyup({"keyIdentifier":"U+0008","which":8});
agent.wait(865);

agent.element("//*[@id='textField']")
.keydown({"keyIdentifier":"U+0008","which":8})
.keyup({"keyIdentifier":"U+0008","which":8});
agent.wait(720);

agent.element("//*[@id='textField']")
.keydown({"keyIdentifier":"U+0008","which":8})
.keyup({"keyIdentifier":"U+0008","which":8})
.mouseMoves([{"x":493,"y":112,"duration":0},{"x":489,"y":129,"duration":383},{"x":464,"y":129,"duration":50}]);
agent.element("/HTML/BODY/FORM/DIV[1]").mousemove({"clientX":450,"clientY":128});
agent.element("/HTML/BODY/FORM/DIV[1]/LABEL").mouseMoves([{"x":419,"y":126,"duration":0},{"x":371,"y":125,"duration":16}]);
agent.element("/HTML/BODY/FORM").mousemove({"clientX":307,"clientY":125});
agent.element("/HTML/BODY").mouseMoves([{"x":274,"y":125,"duration":0},{"x":15,"y":127,"duration":67}]);

// ==== End Recorded Script ====

Issue #2 - iFrame agent doesn't playback special characters.

If you modify the script above to add "keypress" for "delete" like this:

agent.element("//*[@id='textField']")
.keydown({"keyIdentifier":"U+0008","which":8})
.keypress({"keyIdentifier":"U+0008","which":8})
.keyup({"keyIdentifier":"U+0008","which":8})

and playback the script you'll see it works properly through webdriver, but doesn't work (delete key is not pressed) in iFrame

Display URL to control-room when Screening server starts

It would be nice if the message you see after successfully starting screening included the URL to the control room app, since it's the main UI.

So you'd see something like this:

$ node server/
[agents] express app was mounted.
...
Screening Server running on port 8081 [development]
Screening Control Room: http://localhost:8081/screening/control-room/index.html
Connected to MongoDB server on localhost:27017, database: screening
Found a webdriver instance running at http://localhost:9515. Added it as an Agent by default.

Remove button group components

@simurai has mentioned that he no longer depends on the styles added by the button group component. As such we should remove them. All that needs to stay is the div with the appropriate class.

RCA: WebDriver: mouseClick() api does not with chrome for web driver

IDART bug 3579


WebDriver: mouseClick() api does not with chrome for web driver

script path : http://10.72.32.11/screening/api/v1/scripts/defect.js

gets an exception: Unable to locate element
var x = agent.element("//*[@id='monthdiv#7']");
x.mouseClick();

Results seen for webdriver

START Start test run /
Starting test run at 2011-10-07T22:10:34.797Z ms

PASS assertEqual 14 / 1
Actual value: "Calendar"
Expected value: "Calendar"
Message: Verification of the title
570 ms

EXCEPTION Exception 18 / 15
Unable to locate element
596 ms
END End test 46 /
End test run at 2011-10-07T22:10:35.723Z
926 ms

Works for Iframe Results of the script

START Start test run /
Starting test run at 2011-10-07T22:09:17.211Z
ms
PASS assertEqual 14 / 1
Actual value: "Calendar"
Expected value: "Calendar"
Message: Verification of the title
1230 ms
PASS assertContains 25 / 2
Actual value: "August 2011"
Expected value: "August"
Message: Verification of the month title after clicking on the month
4735 ms
END End test 46 /
End test run at 2011-10-07T22:09:22.950Z
5739 ms

Recording: Pause,Resume recording on iFrame agent: recorded script has incorrect DIV numbering, goes beyond html-page DIV numbers.

IDART bug # 3571


S/w : Screening v0.1.4
Set-Up:
Nodejs : Mac-OS-X,
Control-Room: Mac-OS-X +Chrome
Agent-Type: iFrame
Agent-platform: Mac-OS-X,
Agent-Browser: Chrome
DataBase Platform: Mac-OS-X.

This bug is the continuation of the problem noted in Jira # 3570 [DOM can't be quit after Record+Pause ].
The 'resume recording' operation fails to show the feedback on Url correctly and:
the DIV numbers recorded in the script for any attempted action on the Url are incorrect.
[TC#045, BAT]

Steps to reproduce

  1. On the C-R GUI, start a NEW script, name it, save it;
  2. From Control-Room GUI, start Recording, using an iFrame agent selected,
    and use goto-Url = /screening/control-room/ui-sample.html
  3. Go to agent window running script..
    4.
  4. On the C-R Platform, go to Control-Room GUI in browser
  5. Start a NEW script, empty.
  6. Select/ create-and-select a local iFrame Agent (C-R platform )
  7. Click Menu-Bar--> Record
  8. URL is requested, enter
    "/screening/control-room/ui-sample.html" and hit OK.
  9. GO TO the Agent window...running the test
    During the "recording" operation, make specific mouse movements, keyboard input, etc.
  10. PAUSE the Recording via the "Pause Recording" button on the menu-bar. Pause for 10 seconds or so.
  11. Continue recording using the "Resume Recording" button.
  12. During the resumed "recording" operation, make specific mouse movements, keyboard input, etc. that can be recognized as done later, in the script.
  13. Press the "Stop Recording" button, and then SAVE the script; examine script or RUN it back (playback).

Actual Results

  1. No feedback / response to UI on the page...
  2. Script contains incorrect DIV [x] references.

Shown below is the of script recorded for /screening/control-room/ui-sample.html, after 'resume'.

File of recorded-script is RecordPause-Resume-F2.js, attached.
Attempt to RUN the recorded file: Test-Result on iframe agent results in the error below:

EXCEPTION Object 181 / 7 No such element! Query was: "/HTML/BODY/DIV[13]" (Error code: 7)

====================== Fragment begin....
// TOP OF FILE...
// Record, pause, resume from Control Room GUI.
//i-Frame agent selected,
// gotoUrl is ... ui-sample.html .

// ==== Start Recorded Script, Fri Oct 07 2011 18:52:51 GMT-0700 (PDT)====

var agent = new Agent();

agent.gotoUrl("/screening/control-room/ui-sample.html");
...
...
... < first REC session.. contents OK ...>

//Paused... Return to Agent with Resume-recording:

// ==== End Recorded Script ====

// ==== Start Recorded Script, Fri Oct 07 2011 18:56:40 GMT-0700 (PDT)====

//var agent = new Agent(); commented out this repeated Agent creation..

//agent.setSize(1329, 730); .commented out this: known bug.
// Note next line: there aren't 13 DIVs in the goto Url ui-sample.html.

agent.element("/HTML/BODY/DIV[13]")
.mouseMoves([{"x":236,"y":163,"duration":0},{"x":210,"y":154,"duration":16},{"x":183,"y":5,"duration":1953},{"x":241,"y":94,"duration":66},{"x":316,"y":160,"duration":83}])
.mousedown({"clientX":316,"which":1,"clientY":160,"detail":1})
.mouseup({"clientX":316,"which":1,"clientY":160,"detail":1})
.click({"clientX":316,"which":1,"clientY":160,"detail":1})
.mouseMoves([{"x":316,"y":159,"duration":0},{"x":261,"y":104,"duration":117},{"x":259,"y":94,"duration":166},{"x":273,"y":94,"duration":84}])
.mousedown({"clientX":273,"which":1,"clientY":94,"detail":1})
.mouseup({"clientX":273,"which":1,"clientY":94,"detail":1})
.click({"clientX":273,"which":1,"clientY":94,"detail":1})
.mouseMoves([{"x":277,"y":95,"duration":0},{"x":262,"y":100,"duration":150}]);
agent.element("/HTML/BODY").keydown({"keyIdentifier":"Meta","metaKey":true,"which":91});
agent.wait(632);

agent.element("/HTML/BODY").keydown({"shiftKey":true,"keyIdentifier":"Shift","metaKey":true,"which":16});
agent.element("/HTML/BODY/DIV[13]")
.mouseMoves([{"x":1235,"y":713,"duration":0},{"x":936,"y":477,"duration":84},{"x":749,"y":300,"duration":50},{"x":611,"y":255,"duration":2118},{"x":445,"y":250,"duration":58},{"x":353,"y":265,"duration":9},{"x":263,"y":293,"duration":17},{"x":169,"y":337,"duration":16},{"x":75,"y":400,"duration":17},{"x":14,"y":459,"duration":17},{"x":383,"y":61,"duration":48055}])
.mousedown({"clientX":383,"which":1,"clientY":61,"detail":1})
.mouseup({"clientX":383,"which":1,"clientY":61,"detail":1})
.click({"clientX":383,"which":1,"clientY":61,"detail":1})
.mousedown({"clientX":383,"which":3,"button":2,"clientY":61,"detail":2})
.mousemove({"clientX":383,"clientY":61});

// End of fragment

Test-Result of RUN recorded-script on iframe agent results in the error below:

EXCEPTION Object 181 / 7 No such element! Query was: "/HTML/BODY/DIV[13]" (Error code: 7)

HTML Encode strings with special characters

Hi Simon,

I found issues here and here.

It's just a matter of replacing " with &quot;, otherwise Montage 0.6 will throw parsing exceptions.

Also if you remember any other strings/messages that need escaping please change those as well.

Replace binary encoding in node.js Buffers

A Buffer with binary encoding is being used here and quoting the node.js docs:

'binary' - A way of encoding raw binary data into strings by using only the first 8 bits of each character. This encoding method is deprecated and should be avoided in favor of Buffer objects where possible. This encoding will be removed in future versions of Node.

I didn't want to spend too much time finding a good replacement for this because we have other bugs. And this still works with node 0.7

Screening doen't work with select elements

IDART bug 3633


Environment set up.
Nodejs : Mac-OS-X,
Agent-Type: iFrame
Agent-platform: Mac-OS-X
Agent-Browser: Chrome 15.0.874.106

Screening v0.1.5

Steps to reproduce

  1. Create a new agent.
  2. On recording the gotoUrl is "/webapps/js-authoringtool/MainApp/index.html".
  3. Select Shape tool from the tool bar and any Fill Materials from the option bar.
  4. Draw Rectangle Shape on the stage.
  5. Stop recording and playback the script.

Actual Result

Playback is drawing Rectangle without applying any material on it.

Expected Result

Playback should draw Rectangle with material on it.

Results color

Background and text color are the same which makes it hard to read.

Recording buttons stopped toggling

Pause Recording and Record buttons should toggle values to Resume Recording and Stop Recording respectively. They do not do it any more

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.