madskristensen/WebEssentials2013 — pull request #585 by SLaks (2014-01-29 14:34:36+00:00)
Title: Refactor commands & keystroke injection

- Make `CommandTargetBase` generic to avoid GUIDS
- Replace `SendKeys` with actual OLE Command injection for test reliability.

When creating new tests, use `VSHost.TypeString()`.
For special characters, this function will inject the actual command instead of a `TYPECHAR`; see the half-commented-out giant `switch` block.
To add `BACKSPACE`, use `\b`.

If a new test doesn't work, you may need to wait for another event loop before getting the text (if the command handler being tested calls `Dispatcher.InvokeAsync()`).
To do that, call `await VSHost.Dispatcher.NextFrame(DispatcherPriority.ApplicationIdle);`