I think it's generally within an employer's rights to ask you to consent to drug or alcohol testing. Breath alcohol testing makes sense to me. It's a huge liability concern if someone operating large machinery or driving a delivery truck is intoxicated on the job.
As an employer, I find drug use information nearly irrelevant, especially in a professional context. I think it's degrading, and some of the smartest, most effective professionals with whom I've worked have been heavy users of all sorts of stuff (marijuana, adderall, harder drugs...).
One of my good friends worked in the marketing department for a major (S&P 500-listed) U.S. company. Before she started, they demanded not just urine, but a HAIR sample drug test, which apparently lets them test drug use for a much longer time period. As a casual smoker, she spent a ton of time researching online and had her hair bleached and colored multiple times to basically totally destroy any trace of it. She passed the test and was one of their best employees.
That's actually an interesting consideration from an employer's point of view: by mandating drug tests for all employees, you are actually substantially reducing the pool of high-potential people who might work for you.