Phase is not linear in frequency domain after delay in time domain
The phase is in fact linear, apart from jumps of $\pi$ at the zeros of the magnitude. There are two reasons why you don't see it:


the phase you compute is the principal value, which is in $(-\pi,\pi]$. Note that you can always add or subtract a multiple of $2\pi$ to the phase without changing anything. Removing these artificial jumps due to the principal value is called phase unwrapping.
you only compute very few points, and due to point 1 above you just see an erratic behavior.


Solution:


compute a more detailed DFT (by zero-padding the original signal)
unwrap the phase (if you have Matlab/Octave, there's a command to do that)


Here an example in Matlab/Octave:


x = [0 0 0 0 0 1 1 1 1 0 0];
X = fft(x,512);         % length 512 FFT
ph = arg(X);            % wrapped phase
phu = unwrap(ph);       % unwrapped phase
plot((0:256),phu(1:257)/pi), grid on