Thunderbird/Students/StatusUpdates/2010-03-05
Contents
This week’s Random Notes
Status Updates
Zach Church
Tim Miller
This week I continued trying to write tests for my patch. I was unable to get mochitests to work, I could not find anyone who knew about them, and people kept saying I needed to run mozmill tests or xpcshell unit tests, so I started studying up on the different kinds of tests and what they did. I knew I definitely could not test my function with mozmill tests, but the xpcshell tests are supposed to be able to have access to any scriptable function, which mine was, so I converted my tests into xpcshell tests.
I was able to get xpcshell tests to run, but they would crash when I tried to get the handle for a window, which I needed to use for my tests. I tried getting the handle from an existing window as I was doing in the original mochitests, but that function was returning a null pointer, meaning there wasn't one. I tried to create one with a call to the window object, but it was undefined, so I tried starting a new window with a direct call to the window creation function (I forget the name of it), which also returned a null pointer. At this point, I was a bit confused, so back to the documentation.
I started reading up on the tests again. On the page that described the different kinds of tests I ran across a paragraph I distinctly remember reading several weeks ago that said xpcshell tests could test anything that did not need a window, and was one of the reasons I originally decided I needed a mochitest. I felt like a bit dumb for not remembering that and wasting the time on other tests, but my frustration had gotten the better of me. Anyway, back to mochitests again.
Finally, after asking around in IRC and talking to Blake, he suggested I try the #qa channel. And as soon as I did, I finally got some solid answers. Turns out mochitests have to be run in Firefox, and there were two ways to do that. Either download and use the nightly build or download the source and build Firefox on my machine. The nightly build method was giving me some errors, and I had time to let my machine run, so I downloaded the Firefox source and built it on my machine. And finally, mochitests ran correctly!!!!
Unfortunately, my changes/tests were not added yet, and about that point my week got really busy with projects and homework due in other classes, but hopefully this week I will be able to finish and submit those tests!!
Marcel Guzman
Still working on testing. I will have a LOT more to report next week :)
Kefu Zhao
Lindauson Hazell
Evan Stratford
Another unproductive week; I've been working on a side project related to the long bike trip I'm planning for the summer. (One would think that I'd eventually learn to cut down on the number of things I get myself into, but that would seemingly require more wisdom than I currently have.)
Wei Xian Woo
There was a delay in submitting the revised first patch due to a Thunderbird startup crash, but the patch is now in for a review again. As I was making the changes Blake suggested, I noticed a few things that could have been done a little better so I made those changes as well.
While I wait to hear back about patch 1r2, I have been looking at supporting other window types for patch 2r0. The first task planned for this patch is to support message windows (i.e. if a user had a message opened in a new window, we would persist that as well on an app crash). Whether to persist that across app sessions on proper shutdown is a question that still remains - I think what we should do is to let the user choose on shut down by popping up a simple message box. Issues? We might need to redefine what it means to "shut down the app". Details:
1) Currently, Thunderbird shuts down only when ALL windows are closed. 2) If we implement the popup described above, we might want to say that the app is shut down when the last 3-pane window is closed. And if other window types, such as compose or message windows are opened at the time the last 3-pane window is closed, we show that popup asking if we should save the state of the other windows and restore them next time.
As soon as I get something solid going with the message window, I will discuss with the relevant people about the above issues in more detail -- probably starting with Blake.
Who’s writing the blog post this week?
Wei Xian Woo