diff --git a/tests/core/editable/getextractselectedhtml.js b/tests/core/editable/getextractselectedhtml.js index 98a49f20c84..5ceec78ab48 100644 --- a/tests/core/editable/getextractselectedhtml.js +++ b/tests/core/editable/getextractselectedhtml.js @@ -108,105 +108,132 @@ addTests( { 'no block': [ -/*1*/ [ '{x}', 'x', '[]' ], -/*2*/ [ '{}x', '', '[]x' ], +/* 1 */ [ '{a}', 'a', '[]' ], +/* 2 */ [ '{}a', '', '[]a' ], ], - 'block': [ -/*1*/ [ '

{x}

', '

x

', '[]' ], -/*2*/ [ '

x{x}

', 'x', '

x[]

' ], -/*3*/ [ '

{x}x

', 'x', '

[]x

' ], -/*4*/ [ '

x{x}x

', 'x', '

x[]x

' ], +/* 1 */ 'block': [ +/* 2 */ [ '

{a}

', 'a', '

[]@

' ], +/* 3 */ [ '

a{b}

', 'b', '

a[]

' ], +/* 4 */ [ '

{a}b

', 'a', '

[]b

' ], +/* 5 */ [ '

a{b}c

', 'b', '

a[]c

' ], ], 'cross-block': [ -/*1*/ [ '

x{

}x

', '', '

x[]

x

' ], -/*2*/ [ '

{x

x}

', '

x

x

', '[]' ], -/*3*/ [ '

y{x

x}y

', '

x

x

', '

y[]

y

' ], -/*4*/ [ '
y{x

x}y

', '
x

x

', '
y[]

y

' ], -/*5*/ [ '
y{x
x

x}y

', '
x
x

x

', '
y[]

y

' ], -/*6*/ [ '
y
{x
x

x}y

', '
x
x

x

', '
y
[]

y

' ], +/* 1 */ [ '

a{

}b

', '
', '

a[]b

' ], +/* 2 */ [ '

a{@

}b

', '
', '

a[]b

' ], +/* 3 */ [ '

{a

b}

', '

a

b

', '

[]@

' ], +/* 4 */ [ '

{a

b}

', '

a

b

', '

[]@

' ], +/* 5 */ [ '

a{b

c}d

', '

b

c

', '

a[]d

' ], +/* 6 */ [ '
a{b

c}d

', '
b

c

', '
a[]d
' ], +/* 7 */ [ '
a{b
c

d}e

', '
b
c

d

', '
e[]e
' ], +/* 8 */ [ '
a
{b
c

d}e

', '
b
c

d

', '
a
[]@

e

' ], /*!*/ +/* 9 */ [ '

a{b

}c

', '

b


', '

a[]c

' ], +/* 10 */ [ '

a{

b}c

', '

b

', '

a[]c

' ], +/* 11 */ [ '

a{b

c

}d

', '

b

c


', '

a[]d

' ], +/* 12 */ [ '

ab{

c

}de

', '

c


', '

ab[]de

' ], ], 'inline': [ -/*1 */ [ '

x{y}x

', 'y', '

x[]x

' ], -/*2 */ [ '

xy{y}yx

', 'y', '

xy[]yx

' ], -/*3 */ [ '

{y}

', '

y

', '[]' ], -/*4 */ [ '

x{y}x

', 'y', '

x[]x

' ], -/*5 */ [ '

xx{y}xx

', 'y', '

xx[]xx

' ], -/*6 */ [ '

x{y}x

', 'y', '

x[]x

' ], -/*7 */ [ '

{y}

', '

y

', '[]' ], -/*8 */ [ '

x{y}x

', 'y', '

x[]x

' ], -/*9 */ [ '

x{y}

', 'y', '

x[]

' ], -/*10*/ [ '

{y}

', '

y

', '[]' ], +/* 1 */ [ '

a{b}c

', 'b', '

a[]c

' ], +/* 2 */ [ '

ab{c}de

', 'c', '

ab[]de

' ], +/* 3 */ [ '

{a}

', 'a', '

[]@

' ], +/* 4 */ [ '

a{b}c

', 'b', '

a[]c

' ], +/* 5 */ [ '

ab{c}de

', 'c', '

ab[]de

' ], +/* 6 */ [ '

a{b}c

', 'b', '

a[]c

' ], +/* 7 */ [ '

{a}

', 'a', '

[]@

' ], +/* 8 */ [ '

a{b}c

', 'b', '

a[]c

' ], +/* 9 */ [ '

a{b}

', 'b', '

a[]

' ], +/* 10 */ [ '

ab{c}

', 'c', '

ab[]

' ], +/* 11 */ [ '

{a}

', 'a', '

[]@

' ], +/* 12 */ [ '[
]', '
', '[]' ], +/* 13 */ [ 'a{

}b', '

', 'a[]b' ], +/* 14 */ [ '

[a]

', 'a', '

[]@

' ], +/* 15 */ [ '

a{b}c

', 'y', '

a[]c

' ], +/* 16 */ [ '

a{}b

', '', '

a[]b

' ], +/* 17 */ [ '

a{}b

', '', '

a[]b

' ], ], 'cross-inline': [ -/*1*/ [ '

{xy}x

', 'xy', '

[]x

' ], -/*2*/ [ '

x{yx}

', 'yx', '

x[]

' ], -/*3*/ [ '

{xyx}

', '

xyx

', '[]' ], -/*4*/ [ '

x{y}x

', 'y', '

x[]x

' ], -/*5*/ [ '

{xy}

', '

xy

', '[]' ], -/*6*/ [ '

x{xy}y

', 'xy', '

x[]y

' ], -/*7*/ [ '

x{yy}x

', 'yy', '

x[]x

' ], -/*8*/ [ '

x{yxy}x

', 'yxy', '

x[]x

' ], +/* 1 */ [ '

{ab}c

', 'ab', '

[]c

' ], +/* 2 */ [ '

a{bc}

', 'bc', '

a[]

' ], +/* 3 */ [ '

{abc}

', 'abc', '

[]@

' ], +/* 4 */ [ '

a{b}c

', 'b', '

a[]c

' ], +/* 5 */ [ '

{ab}

', 'ab', '

[]@

' ], +/* 6 */ [ '

a{bc}d

', 'bc', '

a[]d

' ], +/* 7 */ [ '

a{bc}d

', 'bc', '

a[]d

' ], +/* 8 */ [ '

a{bcd}e

', 'bcd', '

a[]e

' ], ], 'bogus': [ -/*1*/ [ '

{x}@

', '

x

', '[]' ], -/*2*/ [ '

{x@]

', '

x

', '[]' ], -/*3*/ [ '

{x}@

', '

x

', '[]' ], -/*4*/ [ '

{x}@

', 'x', '

[]

' ], -/*5*/ [ '

{x}
@

', 'x', '

[]
@

' ], +/* 1 */ [ '

{a}@

', 'a', '

[]@

' ], +/* 2 */ [ '

{a@]

', 'a', '

[]@

' ], +/* 3 */ [ '

{a}@

', 'a', '

[]@

' ], +/* 4 */ [ '

{a}@

', 'a', '

[]@

' ], +/* 5 */ [ '

{a}
@

', 'a', '

[]
@

' ], +/* 6 */ [ '{a
]@', 'a
', '[]@' ], +/* 7 */ [ '

{a
]@

', 'a
@', '

[]@

' ], ], 'tables': [ -/*1*/ [ '
{x}
', 'x', '
[]
' ], -/*2*/ [ '
x{x}x
', 'x', '
x[]x
' ], -/*3*/ [ '
y{xx}y
', '
xx
', '
y[]y
' ], -/*4*/ [ '
y{xx}y
', - '
xx
', '
y[]y
' ], -/*5*/ [ '
{x}
', 'x', '
[]
' ], -/*6*/ [ '[
xx}y
', '
xx
', '
[]y
' ], -/*7*/ [ '
{x
x
x}y
', - '
x
x
x
', - '
[]
y
' ], -/*8*/ [ '
x{yy
y}xx
', - '
yy
y
', - '
x[]
xx
' ], +/* 1 */ [ '
{a}
', 'a', '
[]@
' ], +/* 2 */ [ '
{a}
', 'a', '
[]@
' ], +/* 3 */ [ '
a{b}c
', 'b', '
a[]c
' ], +/* 4 */ [ '
a{bc}d
', '
bc
', '
a[]d
' ], +/* 5 */ [ '
a{bc}d
', + '
bc
', '
a[]d
' ], +/* 6 */ [ '[
ab}c
', '
ab
', '
[]@c
' ], +/* 7 */ [ '
{a
b
c}d
', + '
a
b
c
', + '
[]@
d
' ], /*!*/ +/* 8 */ [ '
a{bc
d}ef
', + '
bc
d
', + '
a[]
ef
' ], +/* 9 */ [ '

[a

bc]d
', '

a

bc
', '

[]@

@d
' ], +/* 10 */ [ '

[a

bc
de]f
', + '

a

bc
de
', + '

[]@

@f
' ], +/* 11 */ [ '
{ab}
', '
ab
', '

[]@

' ], +/* 12 */ [ '
{ab}
', + '
ab
', + '

[]@

' ], +/* 13 */ [ '
ab
{cd}
ef
', + '
cd
', '
ab[]
ef
' ], +/* 14 */ [ '
{ab
cd}
ef
', + '
ab
cd
', + '
[]ef
' ], ], 'lists': [ -/*1*/ [ '
  1. x{x}x
', 'x', '
  1. x[]x
' ], -/*2*/ [ '
  1. {x}
', '
  1. x
', '[]' ], -/*3*/ [ '
  1. {x}
', '
  1. x
', '
[]
' ], -/*4*/ [ '
  1. y{x
  2. x}y
', '
  1. x
  2. x
', '
  1. y[]y
' ], -/*5*/ [ '
  1. y{x
  1. x}y
', '
  1. x
  1. x
', '
  1. y[]y
' ], -/*6*/ [ '
    • y{x
  1. x}y
', '
    • x
  1. x
', '
    • y[]y
' ], -/*7*/ [ '
  1. z
  2. y{x
  3. x}y
', '
  1. x
  2. x
', '
  1. z
  2. y[]y
' ], -/*8*/ [ '
  1. y{x
x
  1. x}y
', '
  1. x
x
  1. x
', '
  1. y[]y
' ], -/*9*/ [ '
  1. y{x
x', '
  1. x
x', '
  1. y[]
' ], -/*10*/ [ '
  1. y{x
  1. x}y
', '
  1. x
  1. x
', '
  1. y[]
  1. y
' ], -/*11*/ [ '
  1. y{x
  1. x}y
', '
  1. x
  1. x
', '
  1. y[]
  2. y
' ], +/* 1 */ [ '
  1. a{b}c
', 'b', '
  1. a[]c
' ], +/* 2 */ [ '
  1. {a}
', 'a', '
  1. []@
' ], +/* 3 */ [ '
  1. {a}
', 'a', '
  1. []@
' ], +/* 4 */ [ '
  1. a{b
  2. c}d
', '
  1. b
  2. c
', '
  1. a[]d
' ], +/* 5 */ [ '
  1. a{b
  1. c}d
', '
  1. b
  1. c
', '
  1. a[]d
' ], +/* 6 */ [ '
  1. a{b
', '
  1. b
', '
  1. a[]
' ], +/* 7 */ [ '
  1. a
    • b{c
  2. d}e
', '
    • c
  1. d
', '
  1. a
    • b[]e
' ], +/* 8 */ [ '
  1. a{b
    • c}d
    • e
  2. f
', '
  1. b
    • c
', '
  1. a[]d
    • e
  2. f
' ], +/* 9 */ [ '
  1. a
  2. b{c
  3. d}e
', '
  1. c
  2. d
', '
  1. a
  2. b[]e
' ], ], 'various anchored in element': [ -/*1 */ [ '

[]x

', '', '

[]x

' ], -/*2 */ [ '

[x]

', '

x

', '[]' ], -/*3 */ [ '

x[x]

', 'x', '

x[]

' ], -/*4 */ [ '

x[y]x

', 'y', '

x[]x

' ], -/*5 */ [ '

x[y]x

', 'y', '

x[]x

' ], -/*6 */ [ '

x[y]x

', 'y', '

x[]x

' ], -/*7 */ [ '[]
x
', '
x
', '[]' ], -/*8 */ [ ']
x[y
', '
y
', '
x[]
' ], -/*9 */ [ '
  1. x[
  1. x]y
', '
  1. x
', '
  1. x[]y
' ], -/*10*/ [ '

[x@]

', '

x

', '[]' ], -/*11*/ [ '

[x]@

', '

x

', '[]' ], -/*12*/ [ '

[x]
@

', 'x', '

[]
@

' ], -/*13*/ [ '

[x
]@

', '

x

', '[]' ], -/*14*/ [ '[
]', '
', '[]' ], -/*15*/ [ '[]', '', '[]' ], +/* 1 */ [ '

[]a

', '', '

[]a

' ], +/* 2 */ [ '

[a]

', 'a', '

[]@

' ], +/* 3 */ [ '

a[b]

', 'b', '

a[]

' ], +/* 4 */ [ '

a[b]c

', 'b', '

a[]c

' ], +/* 5 */ [ '

a[b]c

', 'b', '

a[]c

' ], +/* 6 */ [ '

a[b]c

', 'b', '

a[]c

' ], +/* 7 */ [ '[]
a
', 'a', '
[]@
' ], +/* 8 */ [ ']
a[b
', '
b
', '
a[]@
' ], +/* 9 */ [ '

[a@]

', 'a', '

[]@

' ], +/* 10 */ [ '

[a]@

', 'a', '

[]@

' ], +/* 11 */ [ '

[a]
@

', 'a', '

[]
@

' ], +/* 12 */ [ '

[a
]@

', 'a
', '

[]@

' ], +/* 13 */ [ '[
]', '
', '[]' ], +/* 14 */ [ '[]', '', '[]' ], +/* 15 */ [ '

[]

', '', '

[]@

' ], +/* 16 */ [ '
[
]
', '
', '
[]
' ], ] }, 'inline' ); addTests( { 'header': [ - [ '{x}', 'x', '[]' ], - [ 'x{y}x', 'y', 'x[]x' ], - [ '{xyx}', 'xyx', '[]' ], - [ '[xyx]', 'xyx', '[]' ], +/* 1 */ [ '{a}', 'a', '[]' ], +/* 2 */ [ 'a{b}c', 'b', 'a[]c' ], +/* 3 */ [ '{abc}', 'abc', '[]' ], +/* 4 */ [ '[abc]', 'abc', '[]' ], ] }, 'header' );