HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/buyercall/node_modules/svg.js/spec/spec/clip.js
describe('ClipPath', function() {
  var rect, circle

  beforeEach(function() {
    rect   = draw.rect(100,100)
    circle = draw.circle(100).move(50, 50)
    rect.clipWith(circle)
  })

  afterEach(function() {
    draw.clear()
  })

  it('moves the clipping element to a new clip node', function() {
    expect(circle.parent() instanceof SVG.ClipPath).toBe(true)
  })
  
  it('creates the clip node in the defs node', function() {
    expect(circle.parent().parent()).toBe(draw.defs())
  })

  it('sets the "clip-path" attribute on the cliped element with the clip id', function() {
    expect(rect.attr('clip-path')).toBe('url("#' + circle.parent().attr('id') + '")')
  })

  it('references the clip element in the masked element', function() {
    expect(rect.clipper).toBe(circle.parent())
  })

  it('references the clipped element in the clipPath target list', function() {
    expect(rect.clipper.targets.indexOf(rect) > -1).toBe(true)
  })
  
  it('reuses clip element when clip was given', function() {
    var clip = rect.clipper
    expect(draw.rect(100,100).clipWith(clip).clipper).toBe(clip)
  })

  it('unclips all clipped elements when being removed', function() {
    rect.clipper.remove()
    expect(rect.attr('clip-path')).toBe(undefined)
  })

  describe('unclip()', function() {

    it('clears the "clip-path" attribute on the clipped element', function() {
      rect.unclip()
      expect(rect.attr('clip-path')).toBe(undefined)
    })

    it('removes the reference to the clipping element', function() {
      rect.unclip()
      expect(rect.clipper).toBe(undefined)
    })

    it('returns the clipPath element', function() {
      expect(rect.unclip()).toBe(rect)
    })

  })

})