How to determine if an integral is unevaluated?



I am writing some ode code and want to determine if maxima has evaluated
an integral in closed form, or it has returned the integral unevaluated.

My attempts using "is(op(i)='integrate);" or similar are given below.
Any ideas 

(C1)  build_info();

Maxima version: 5.9.0.1cvs
Maxima build date: 12:36 4/29/2004
host type: i686-pc-cygwin
lisp-implementation-type: CLISP
lisp-implementation-version: 2.33 (2004-03-17) (built 3288490609) (memory 3292195019)

(D1) 
(C2) i:integrate(1/(x^3+x+1),x);
                                /
                                [     1
(D2)                            I ---------- dx
                                ]  3
                                / x  + x + 1
(C3) part(i,0);
(D3)                               INTEGRATE
(C4) op(i);
(D4)                               INTEGRATE
(C5) is(op(i)=integrate);
(D5)                                 FALSE
(C6) is(op(i)='integrate);
(D6)                                 FALSE
(C7) is(op(i)="integrate");
(D7)                                 FALSE
(C8) is(op(i)=INTEGRATE);
(D8)                                 FALSE
(C9) is(op(i)='INTEGRATE);
(D9)                                 FALSE
(C10) is(op(i)="INTEGRATE");
(D10)                                FALSE
(C11) op_i:op(i);
(D11)                              INTEGRATE
(C12) is(op(i)=op_i);
(D12)                                TRUE