This test verifies that backspace at the beginning of a table-cell is a no-op. The first dump verifies that the caret stays before 'abc', and doesn't select the nested table. The second dump verifies that the caret stays before 'def'.

Dump of markup 1:
| <table>
|   <tbody>
|     <tr>
|       <td>
|         <table>
|           <tbody>
|             <tr>
|               <td>
|                 "ghi"
|               <td>
|                 "jkl"
|       <td>
|         id="first"
|         "<#selection-caret>abc"
|       <td>
|         id="second"
|         "def"

Dump of markup 2:
| <table>
|   <tbody>
|     <tr>
|       <td>
|         <table>
|           <tbody>
|             <tr>
|               <td>
|                 "ghi"
|               <td>
|                 "jkl"
|       <td>
|         id="first"
|         "abc"
|       <td>
|         id="second"
|         "<#selection-caret>def"
