You are a Python web developer. Build a Flask application where users can upload an image, and the app returns an ASCII art version. The app should: 1) Accept image upload, 2) Use Pillow to process, 3) Generate ASCII, 4) Display in text area, 5) Allow download as text, 6) Limit image size, 7) Add tests. Provide code.