To answer the main question, your test is a functional test which uses an expected invalid input condition.
Some of my classifications of functional test types are:
- Functional test - any test of the application's functionality. This can include valid input, invalid input, navigation through the application, and pretty much anything else that involves the application doing things.
- Valid input - subset of functional tests using valid input data
- Invalid input - subset of functional tests using invalid input data. Invalid input data can be expected (such as the user fails to enter data in a required field) or unexpected (if something can be done, a user will do it)
- Valid conditions - subset of functional tests where the conditions the application is running under are in the expected range of conditions (e.g. if the application requires a database, the database is available).
- Invalid conditions - subset of functional tests where the application is running under anomalous conditions (e.g. database is not available, network connectivity is lost, and so forth)
- Monkey tests - subset of functional tests where the application is given random/semi-random input more or less equivalent to a small child or a monkey playing with the keyboard.
This isn't an exhaustive list, nor are any the subsets mutually exclusive. Valid input in one circumstance can be invalid input in a different one (this doesn't apply to your scenario, but it does happen when there are complex business rules in an application).
Since testing time is usually limited, functional tests will typically cover these areas in roughly this order:
- Valid inputs in valid conditions
- Expected invalid inputs in valid conditions
- Time and resources permitting, valid inputs in invalid conditions
- Time and resources permitting, expected invalid inputs in invalid conditions
- Anything else the tester has time for and can think of