Okay, the horn works 100%, you tested it directly to the battery. The only thing that switch does is close the circuit, just like a common light switch in a house. Find out where the or/wh wire comes from under the dash and what it's hooked to for a power source. There's another wire on the other side of the horn, ( you need 2 to make it work) ones + the other -, I'm highly suspecting the or/wh is +positive. Find out where the other wire from the horn goes, most likely a common ground point(buss bar) under the dash. Somewhere under there is a failed connection, the actual connector may be tight however the wire is not making contact at the connector. There's no other way around it.