static-style-parser.spec.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import { parseStyleText } from 'web/util/style'
  2. const base64ImgUrl = 'url("data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==")'
  3. const logoUrl = 'url(https://vuejs.org/images/logo.png)'
  4. it('should parse normal static style', () => {
  5. const staticStyle = `font-size: 12px;background: ${logoUrl};color:red`
  6. const res = parseStyleText(staticStyle)
  7. expect(res.background).toBe(logoUrl)
  8. expect(res.color).toBe('red')
  9. expect(res['font-size']).toBe('12px')
  10. })
  11. it('should parse base64 background', () => {
  12. const staticStyle = `background: ${base64ImgUrl}`
  13. const res = parseStyleText(staticStyle)
  14. expect(res.background).toBe(base64ImgUrl)
  15. })
  16. it('should parse multiple background images ', () => {
  17. let staticStyle = `background: ${logoUrl}, ${logoUrl};`
  18. let res = parseStyleText(staticStyle)
  19. expect(res.background).toBe(`${logoUrl}, ${logoUrl}`)
  20. staticStyle = `background: ${base64ImgUrl}, ${base64ImgUrl}`
  21. res = parseStyleText(staticStyle)
  22. expect(res.background).toBe(`${base64ImgUrl}, ${base64ImgUrl}`)
  23. })
  24. it('should parse other images ', () => {
  25. let staticStyle = `shape-outside: ${logoUrl}`
  26. let res = parseStyleText(staticStyle)
  27. expect(res['shape-outside']).toBe(logoUrl)
  28. staticStyle = `list-style-image: ${logoUrl}`
  29. res = parseStyleText(staticStyle)
  30. expect(res['list-style-image']).toBe(logoUrl)
  31. staticStyle = `border-image: ${logoUrl} 30 30 repeat`
  32. res = parseStyleText(staticStyle)
  33. expect(res['border-image']).toBe(`${logoUrl} 30 30 repeat`)
  34. })