api-browser-view-spec.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. 'use strict'
  2. const assert = require('assert')
  3. const {closeWindow} = require('./window-helpers')
  4. const {remote} = require('electron')
  5. const {BrowserView, BrowserWindow} = remote
  6. describe('BrowserView module', function () {
  7. var w = null
  8. var view = null
  9. beforeEach(function () {
  10. w = new BrowserWindow({
  11. show: false,
  12. width: 400,
  13. height: 400,
  14. webPreferences: {
  15. backgroundThrottling: false
  16. }
  17. })
  18. })
  19. afterEach(function () {
  20. if (view) {
  21. view.destroy()
  22. view = null
  23. }
  24. return closeWindow(w).then(function () { w = null })
  25. })
  26. describe('BrowserView.setBackgroundColor()', function () {
  27. it('does not throw for valid args', function () {
  28. view = new BrowserView()
  29. view.setBackgroundColor('#000')
  30. })
  31. it('throws for invalid args', function () {
  32. view = new BrowserView()
  33. assert.throws(function () {
  34. view.setBackgroundColor(null)
  35. }, /conversion failure/)
  36. })
  37. })
  38. describe('BrowserView.setAutoResize()', function () {
  39. it('does not throw for valid args', function () {
  40. view = new BrowserView()
  41. view.setAutoResize({})
  42. view.setAutoResize({ width: true, height: false })
  43. })
  44. it('throws for invalid args', function () {
  45. view = new BrowserView()
  46. assert.throws(function () {
  47. view.setAutoResize(null)
  48. }, /conversion failure/)
  49. })
  50. })
  51. describe('BrowserView.setBounds()', function () {
  52. it('does not throw for valid args', function () {
  53. view = new BrowserView()
  54. view.setBounds({ x: 0, y: 0, width: 1, height: 1 })
  55. })
  56. it('throws for invalid args', function () {
  57. view = new BrowserView()
  58. assert.throws(function () {
  59. view.setBounds(null)
  60. }, /conversion failure/)
  61. assert.throws(function () {
  62. view.setBounds({})
  63. }, /conversion failure/)
  64. })
  65. })
  66. describe('BrowserWindow.setBrowserView()', function () {
  67. it('does not throw for valid args', function () {
  68. view = new BrowserView()
  69. w.setBrowserView(view)
  70. })
  71. it('does not throw if called multiple times with same view', function () {
  72. view = new BrowserView()
  73. w.setBrowserView(view)
  74. w.setBrowserView(view)
  75. w.setBrowserView(view)
  76. })
  77. })
  78. describe('BrowserView.webContents.getOwnerBrowserWindow()', function () {
  79. it('points to owning window', function () {
  80. view = new BrowserView()
  81. assert.ok(!view.webContents.getOwnerBrowserWindow())
  82. w.setBrowserView(view)
  83. assert.equal(view.webContents.getOwnerBrowserWindow(), w)
  84. w.setBrowserView(null)
  85. assert.ok(!view.webContents.getOwnerBrowserWindow())
  86. })
  87. })
  88. describe('BrowserView.fromId()', function () {
  89. it('returns the view with given id', function () {
  90. view = new BrowserView()
  91. w.setBrowserView(view)
  92. assert.notEqual(view.id, null)
  93. let view2 = BrowserView.fromId(view.id)
  94. assert.equal(view2.webContents.id, view.webContents.id)
  95. })
  96. })
  97. })