input: Write a function to parse the given URL and print out the protocol, domain name, and path using Python. If the input URL is empty or invalid, return a message saying "Invalid URL". The function should use the `urllib.parse` module for the parsing.
  
  assert url_parser('https://www.example.com/path/to/file') == "Protocol: https\nDomain name: www.example.com\nPath: /path/to/file"
  assert url_parser('http://testsite.co/some/path') == "Protocol: http\nDomain name: testsite.co\nPath: /some/path"
  assert url_parser('') == "Invalid URL"
  assert url_parser('invalid-url') == "Invalid URL"
  assert url_parser('ftp://example.net') == "Protocol: ftp\nDomain name: example.net\nPath: /"
  assert url_parser('https://www.site.org:8080/home') == "Protocol: https\nDomain name: www.site.org:8080\nPath: /home"
output: def url_parser(url):
      from urllib.parse import urlparse
      if not url:
          return "Invalid URL"
      parsed_url = urlparse(url)
      if not parsed_url.scheme or not parsed_url.netloc:
          return "Invalid URL"
      return f"Protocol: {parsed_url.scheme}\nDomain name: {parsed_url.netloc}\nPath: {parsed_url.path}"