I've created a new test account to test restore option in the latest MKStoreKit, I didn't purchase this item "non-consumable item" neither using the new test account nor using any other test account. Still it gave me a restore success answer and executed the onComplete code block. My question: Is it a normal behavior for a test account to restore non-purchased products?
No, this isn't a normal behaviour, please notice that onComplete code block in restore method will execute wither the account has purchased this product before or not, onComplete here indicates that the user has logged in successfully, request has been sent to apple and it received a response back. It's better to provide content after the check not onComplete, please refer to this answer for more details: Restoring an in app purchase with a user who never paid for it