She needs to have finished her contract AND upgraded. They will not unlock any iPhone associated to an account that is still in use. If she leaves AT&T once the contract has ended they will not unlock it either.
They will nly unlock iPhones where the customer has come to the end of the contract and then upgraded, effectively it's a way of trapping the customer in my opinion because if you want to go to someone else you have to leave your iPhone behind on AT&T but if you want to unlock you have to upgrade