For a CGPath, you can always create a closed path which is the contour of the stroked path using:
CGPathRef strokedPath = CGPathCreateCopyByStrokingPath(
path, // your original CGPathRef
NULL, // don't transform
10.0, // lineWidth
kCGLineCapButt, // lineCap (default value)
kCGLineJoinMiter, // lineJoin (default value)
0.0 // miterLimit
);
You can read more about path hit testing here (by Ole Begemann) and here (by Rob Napier).