Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions lib/browserstack.js
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,17 @@ Client.createVersion( 2, {
}
});

Client.createVersion( 3, {
_getBrowsers: function( fn ) {
this.request({
path: this.path( "/browsers?flat=true" )
}, fn );
},

getBrowserId: function( browser ) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't tried but I suspect this doesn't work as expected because the updateLatest methods look for the version property instead of the browser_version property.

return browser.os + ":" + browser.os_version + ":" + (browser.browser || browser.device);
}
});

module.exports = {
createClient: function( settings ) {
Expand Down
10 changes: 8 additions & 2 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,19 @@ client.getBrowsers(function( error, browsers ) {
A common pattern in the API is a "browser object" which is just a plain object with the following properties:

* `os`: The operating system.
* `os_version`: The operating system or device version.
* `browser`: The browser name.
* `browser_version`: The browser version (`null` for mobile devices)
* `device`: The device name.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

May want to add "(null for desktop browsers)" to the description of device as well.

See https://github.com/browserstack/api/tree/v3#output-1

* `version`: The browser or device version.

A browser object may only have one of `browser` or `device` set; which property is set will depend on `os`.

*V1 does not support multiple operating systems.
As such, there is no `os` version, and browser objects will always use `browser`.*

*Multiple OS versions are not supported prior to V3. In V1 and V2 `os_version` and `browser_version` are not present, and
`version` is used for browser or device version.*

### worker objects

Worker objects are extended [browser objects](#browser-objects) which contain the following additional properties:
Expand Down Expand Up @@ -70,8 +74,10 @@ Creates a worker.

* `settings`: A hash of settings for the worker (an extended [browser object](#browser-objects)).
* `os`: Which OS to use for the new worker.
* `os_version`: Which OS version to use (see note above about `os_version` pre-V3)
* `browser`/`device`: Which browser/device to use in the new worker. Which property to use depends on the OS.
* `version`: Which version of the specified browser to use.
* `browser_version`: Which version of the specified browser to use (for V3).
* `version`: Which version of the specified browser to use (for V1 or v2).
* `url` (optional): Which URL to navigate to upon creation.
* `timeout` (optional): Maximum life of the worker (in seconds). Use 0 for "forever" (BrowserStack will kill the worker after 1,800 seconds).
* `callback` (`function( error, worker )`): A callback to invoke when the API call is complete.
Expand Down