summaryrefslogtreecommitdiffstats
path: root/debian/missing-sources/epoch/src/core/context.coffee
blob: 8566552b713f46d09037dcd94c4364ee3a52f56b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Rendering context used for unit testing.
class Epoch.TestContext
  VOID_METHODS = [
    'arc', 'arcTo', 'beginPath', 'bezierCurveTo', 'clearRect',
    'clip', 'closePath', 'drawImage', 'fill', 'fillRect', 'fillText',
    'moveTo', 'quadraticCurveTo', 'rect', 'restore', 'rotate', 'save',
    'scale', 'scrollPathIntoView', 'setLineDash', 'setTransform',
    'stroke', 'strokeRect', 'strokeText', 'transform', 'translate', 'lineTo'
  ]

  # Creates a new test rendering context.
  constructor: ->
    @_log = []
    @_makeFauxMethod(method) for method in VOID_METHODS

  # Creates a fake method with the given name that logs the method called
  # and arguments passed when executed.
  # @param name Name of the fake method to create.
  _makeFauxMethod: (name) ->
    @[name] = -> @_log.push "#{name}(#{(arg.toString() for arg in arguments).join(',')})"

  # Faux method that emulates the "getImageData" method
  getImageData: ->
    @_log.push "getImageData(#{(arg.toString() for arg in arguments).join(',')})"
    return { width: 0, height: 0, resolution: 1.0, data: [] }