api-desktop-capturer-spec.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. const assert = require('assert')
  2. const desktopCapturer = require('electron').desktopCapturer
  3. const isCI = require('electron').remote.getGlobal('isCi')
  4. describe('desktopCapturer', function () {
  5. if (isCI && process.platform === 'win32') {
  6. return
  7. }
  8. it('should return a non-empty array of sources', function (done) {
  9. desktopCapturer.getSources({
  10. types: ['window', 'screen']
  11. }, function (error, sources) {
  12. assert.equal(error, null)
  13. assert.notEqual(sources.length, 0)
  14. done()
  15. })
  16. })
  17. it('throws an error for invalid options', function (done) {
  18. desktopCapturer.getSources(['window', 'screen'], function (error) {
  19. assert.equal(error.message, 'Invalid options')
  20. done()
  21. })
  22. })
  23. it('does not throw an error when called more than once (regression)', function (done) {
  24. var callCount = 0
  25. var callback = function (error, sources) {
  26. callCount++
  27. assert.equal(error, null)
  28. assert.notEqual(sources.length, 0)
  29. if (callCount === 2) done()
  30. }
  31. desktopCapturer.getSources({types: ['window', 'screen']}, callback)
  32. desktopCapturer.getSources({types: ['window', 'screen']}, callback)
  33. })
  34. it('responds to subsequest calls of different options', function (done) {
  35. var callCount = 0
  36. var callback = function (error, sources) {
  37. callCount++
  38. assert.equal(error, null)
  39. if (callCount === 2) done()
  40. }
  41. desktopCapturer.getSources({types: ['window']}, callback)
  42. desktopCapturer.getSources({types: ['screen']}, callback)
  43. })
  44. })