Here’s how I’ve been unit testing my input-based directives (Lots of code omitted for clarity!) The important line you are after is:
angular.element(dirElementInput).val('Some text').trigger('input');
Here’s the full unit test:
it('Should show a red cross when invalid', function () {
dirElement = angular.element('<ng-form name="dummyForm"><my-text-entry ng-model="name"></my-text-entry></ng-form>');
compile(dirElement)(scope);
scope.$digest();
// Find the input control:
var dirElementInput = dirElement.find('input');
// Set some text!
angular.element(dirElementInput).val('Some text').trigger('input');
scope.$apply();
// Check the outcome is what you expect! (in my case, that a specific class has been applied)
expect(dirElementInput.hasClass('ng-valid')).toEqual(true);
});