session.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. // Licensed to the Software Freedom Conservancy (SFC) under one
  2. // or more contributor license agreements. See the NOTICE file
  3. // distributed with this work for additional information
  4. // regarding copyright ownership. The SFC licenses this file
  5. // to you under the Apache License, Version 2.0 (the
  6. // "License"); you may not use this file except in compliance
  7. // with the License. You may obtain a copy of the License at
  8. //
  9. // http://www.apache.org/licenses/LICENSE-2.0
  10. //
  11. // Unless required by applicable law or agreed to in writing,
  12. // software distributed under the License is distributed on an
  13. // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  14. // KIND, either express or implied. See the License for the
  15. // specific language governing permissions and limitations
  16. // under the License.
  17. 'use strict';
  18. const {Capabilities} = require('./capabilities');
  19. /**
  20. * Contains information about a single WebDriver session.
  21. */
  22. class Session {
  23. /**
  24. * @param {string} id The session ID.
  25. * @param {!(Object|Capabilities)} capabilities The session
  26. * capabilities.
  27. */
  28. constructor(id, capabilities) {
  29. /** @private {string} */
  30. this.id_ = id;
  31. /** @private {!Capabilities} */
  32. this.caps_ = capabilities instanceof Capabilities
  33. ? /** @type {!Capabilities} */(capabilities)
  34. : new Capabilities(capabilities);
  35. }
  36. /**
  37. * @return {string} This session's ID.
  38. */
  39. getId() {
  40. return this.id_;
  41. }
  42. /**
  43. * @return {!Capabilities} This session's capabilities.
  44. */
  45. getCapabilities() {
  46. return this.caps_;
  47. }
  48. /**
  49. * Retrieves the value of a specific capability.
  50. * @param {string} key The capability to retrieve.
  51. * @return {*} The capability value.
  52. */
  53. getCapability(key) {
  54. return this.caps_.get(key);
  55. }
  56. /**
  57. * Returns the JSON representation of this object, which is just the string
  58. * session ID.
  59. * @return {string} The JSON representation of this Session.
  60. */
  61. toJSON() {
  62. return this.getId();
  63. }
  64. }
  65. // PUBLIC API
  66. module.exports = {Session: Session};