Not validating required validation
You can check if the form failed validation by calling form_get_errors

You could try using drupal_form_submit instead, which I think will also validate the form (seen via form_get_errors)