We consider the transmission completion time minimization problem in a single-user energy harvesting wireless communication system. In this system, both the data packets and the harvested energy are modelled to arrive at the source node randomly. Our goal is to adaptively change the transmission rate according to the traffic load and available energy, such that the transmission completion time is minimized. Under a deterministic system setting, we assume that the energy harvesting times and harvested energy amounts are known before the transmission starts. For the data traffic arrivals, we consider two different scenarios. In the first scenario, we assume that all bits have arrived and are ready at the transmitter before the transmission starts. In the second scenario we consider, packets arrive during the transmissions with known arriving times and sizes. We develop optimal off-line scheduling policies which minimize the overall transmission completion time under causality constraints on both data and energy arrivals.