SoK/2018/StatusReport/HimanshuVishwakarma

From KDE Community Wiki

Write test and improve protocols supports for the Kopete

Project title: Write test and improve protocols support for the Kopete

Mentor: Vijay Krishnavanshi ([email protected])

A Brief Description: Kopete is the application for the instant messaging that has a modular architecture and supports many messaging services like Skype, Jabber, ICQ, MeanWhile, Bonjour, QQ, etc with lots of useful plugins like history, highlights, bookmarks, translator, text effects, contact notes and many others which are very useful for chatting.

Project Goals:
  • Write unit test for remaining part of Kopete's libraries i.e. libkopete, protocol, plugins, etc.
  • Work on the improving the protocols support
  • Removing the bugs.

Result: Passed

Current Status of the Project

I had only able to worked on the unit testings part of the project. I had written the four unit test for the Kopete which are open on the phabricator and need to be the review (their link is given below) and merge into the Kopete git repository. The unit tests follow:

  • QQCryptTest: The unit test is testing the class Crypt which is encrypting and decrypting the message in the QQ Protocol.
  • JabberProtocolTest: The unit test is testing the JabberProtocol class which is the main class for Jabber protocol library.
  • KopetePluginTest: The Unit test is testing the base class of kopete plugins in the libkopete library.
  • KopetePictureTest: The Unit test is testing the class Picture in the libkopete library of the Kopete.

Implementation

The main hug task during this season of KDE is to build the kopete application on my PC I will take near about fifteen days to build the kopete after that I starts with the reading of previous unit tests in the Kopete in the libkopete library. I read the test kopeteblacklistertest.cpp and learn QtTesting from it.

  • After that I go through the codebase of the QQ protocol, my first patch is on a unit test of the crypt class of QQ protocol, In this class Encrypting the data and Decrypting data, I test it by using the data-driven test. The patch of the test is here
  • After completing my first patch I move toward Jabber Protocol, read its codebase. I Started writing the unit test of class JabberProtocol, I tested the changing of the online status from JabberProtocol to Kopete OnlineStatus, it reverses and creating the new account on the Jabber protocol, the patch of this test, here.
  • During the writing JabberProtocolTest, also I was exploring the libkopete library of the kopete, The third unit test I wrote from this library of class Kopete::Plugins, this was the base class for the kopete plugins, here I test the many functions like showCloseWindowMessage, shouldExitOnclose, aboutToUnload, pluginId, displayName, addAddressBookField, AddressBookFieldMode, etc. The patch is here.
  • And the next unit test I wrote for the class Kopete::Picture, this class is all about the picture handling in the kopete, the patch is here

What I learned during the SoK

It was a nice experience for me. I learned a lot of things. Some are following:

  • XMPP protocols(Jabber Protocol)
  • C++
  • Git
  • CMAKE
  • Object-Oriented Programming
  • Qt
  • QtTest
  • The most important thing is how to work in the open source community.

I always am thankful for the KDE community and Especially my mentor Vijay Krishnavashi for his support in the project.

Work Reports

Link to profile https://phabricator.kde.org/p/himanshuvishwakarma

Link to the proposal: here
Link to the Weekly Status Reports(progress): here
Link to patches: QQCryptTest, JabberProtocolTest, KopetePluginTest, KopetePictureTest
Link to the blog: here
Link to the Kopete repository: here

To see my work and run the tests are follows:

Contact

Email: [email protected]
IRC: himvish997/himvish997_
Kopete IRC Channel: #kopete
Kopete mailing list: [email protected]