void ContentTest::testGetHeaderInstance( ) { // stuff that looks trivial but breaks if you mess with virtual method signatures (see r534381) Headers::From *myfrom = new Headers::From(); QCOMPARE( myfrom->type(), "From" ); Headers::Base *mybase = myfrom; QCOMPARE( mybase->type(), "From" ); // getHeaderInstance() is protected, so we need to test it via KMime::Message Message *c = new Message(); Headers::From *f1 = c->from( true ); Headers::From *f2 = c->from( true ); QCOMPARE( f1, f2 ); delete c; }
void NewsArticle::assemble() { Headers::Base *h; QCString newHead = ""; //Message-ID if((h = messageID(false)) != 0) newHead += h->as7BitString() + "\n"; //Control if((h = control(false)) != 0) newHead += h->as7BitString() + "\n"; //Supersedes if((h = supersedes(false)) != 0) newHead += h->as7BitString() + "\n"; //From h = from(); // "From" is mandatory newHead += h->as7BitString() + "\n"; //Subject h = subject(); // "Subject" is mandatory newHead += h->as7BitString() + "\n"; //To if((h = to(false)) != 0) newHead += h->as7BitString() + "\n"; //Newsgroups if((h = newsgroups(false)) != 0) newHead += h->as7BitString() + "\n"; //Followup-To if((h = followUpTo(false)) != 0) newHead += h->as7BitString() + "\n"; //Reply-To if((h = replyTo(false)) != 0) newHead += h->as7BitString() + "\n"; //Mail-Copies-To if((h = mailCopiesTo(false)) != 0) newHead += h->as7BitString() + "\n"; //Date h = date(); // "Date" is mandatory newHead += h->as7BitString() + "\n"; //References if((h = references(false)) != 0) newHead += h->as7BitString() + "\n"; //Lines h = lines(); // "Lines" is mandatory newHead += h->as7BitString() + "\n"; //Organization if((h = organization(false)) != 0) newHead += h->as7BitString() + "\n"; //User-Agent if((h = userAgent(false)) != 0) newHead += h->as7BitString() + "\n"; //Mime-Version newHead += "MIME-Version: 1.0\n"; //Content-Type newHead += contentType()->as7BitString() + "\n"; //Content-Transfer-Encoding newHead += contentTransferEncoding()->as7BitString() + "\n"; //X-Headers int pos = h_ead.find("\nX-"); if(pos > -1) //we already have some x-headers => "recycle" them newHead += h_ead.mid(pos + 1, h_ead.length() - pos); else if(h_eaders && !h_eaders->isEmpty()) { for(h = h_eaders->first(); h; h = h_eaders->next()) { if(h->isXHeader() && (strncasecmp(h->type(), "X-KNode", 7) != 0)) newHead += h->as7BitString() + "\n"; } } h_ead = newHead; }