static-style-parser.spec.ts 1.5 KB

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