Tests that renaming a selector updates element styles. Bug 70018.

Text
=== Before selector modification ===
[expanded] 
element.style  { ()
color: red;

======== Matched CSS Rules ========
[expanded] 
#inspected  { (commit-selector.html:4)
/-- overloaded --/ color: green;

[expanded] 
div  { (user agent stylesheet)
display: block;


=== After non-affecting selector modification ===
[expanded] 
element.style  { ()
color: red;

======== Matched CSS Rules ========
[expanded] 
hr, #inspected  { (commit-selector.html:4)
/-- overloaded --/ color: green;

[expanded] 
div  { (user agent stylesheet)
display: block;


=== After affecting selector modification ===
[expanded] 
element.style  { ()
color: red;

======== Matched CSS Rules ========
[expanded] [no-affect] 
#inspectedChanged  { (commit-selector.html:4)
color: green;

[expanded] 
div  { (user agent stylesheet)
display: block;



