most companies here pay for the test themselves. Otherwise, you can go to somewhere less reputable and pay off a working to fake your test results. At my departments, there is no initial test unless the Chief wants it, but after that they can call you up at any time for a drug test for cause or randomly.
If it's randomly or post accident, then you are paid for your time to go to the place to do it, plus get paid milage if you don't take a company car, and then come back and continue your shift.
If it's for cause, then you clock out immediately, and go take the test. You stay off duty until the results come back. If they come back clean, the company pays you for the hours you were originally scheduled for plus milage if you didn't take a company car. If it comes back positive, you'll most likely be gone anyways.